Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Golang além do "hello world"

02b3f64a1d67d061c3be08729322a90b?s=47 Jefferson Otoni Lima
September 29, 2018
85

Golang além do "hello world"

Todos sabemos que o Goroutine é o poder supremo em Golang, a apresentação é uma simples abordagem de como funciona o Schedule do Go e como as Goroutines trabalham em conjunto com os processadores e suas respectivas threads.

02b3f64a1d67d061c3be08729322a90b?s=128

Jefferson Otoni Lima

September 29, 2018
Tweet

Transcript

  1. s3wf.com @jeffotoni DevOps Belo Horizonte, Setembro 29 2018 Jefferson Otoni

    Golang além do “hello world” t.me/devopsbh
  2. @jeffotoni O que é goroutines ? O que é channels

    ? 01 02 03 Por que goroutines é poderoso ? 04 05 GOMAXPROCS o que é ? 06 Concorrência != Paralelismo
  3. O que é Goroutine? go func(c *int, p chan <-

    string){ .. }(c, p)
  4. https://rakyll.org/scheduler/ P1 = processador M = Threads G = Goroutine

    GO SCHEDULER *V1
  5. M : N

  6. P1 = processador M = Threads G = Goroutine GO

    SCHEDULER *V2 https://morsmachine.dk/go-scheduler http://supertech.csail.mit.edu/papers/steal.pdf M0 M0 M1 M1 P Syscall G G G G G G G0 P G0
  7. O que é GOMAXPROCS?

  8. Executando centenas de Goroutines

  9. $ GOMAXPROCS = 64

  10. CONCORRÊNCIA não é PARALELISMO http://whisperd.tech/post/go-channel/

  11. O que é CHANNELS ?

  12. CHANNELS & BUFFERS

  13. Criando contadores com ponteiros

  14. Tickers

  15. Workers super poderoso https://gobyexample.com/worker-pools Referência:

  16. GOROUTINES MEMORY USAGE Mem(GB) Goroutine 1 2 4 8 16

    32 370 740k 1.5M 2.9M 5.9M 11.8 Fonte: Concorrência em Go
  17. Por que Go é tão poderoso?

  18. Concorrência é poderosa. Concorrência não é paralelismo. Concorrência permite paralelismo.

    A Concorrência facilita o paralelismo (e escalonamento e tudo mais) Conclusão
  19. Thanks := &Obrigado{...} Obrigado... github.com/jeffotoni instagram.com/jeffotoni https://t.me/devopsbh https://t.me/go_br https://t.me/awsbrasil