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

Performance em Go

Performance em Go

Algumas técnicas para otimizar seu programas em Go, esta apresentação retrata algumas técnicas que poderão ser utilizadas no seu dia a dia para otimizar ainda mais seus códigos em Go.
Utilização do Sync.Pool, pprof, Benchmarking.

Jefferson Otoni Lima

July 25, 2019
Tweet

More Decks by Jefferson Otoni Lima

Other Decks in Technology

Transcript

  1. http://s3wf.com
    @jeffotoni
    2019 BELO HORIZONTE 25/07
    Jefferson Otoni
    Performance

    View full-size slide

  2. @jeffotoni
    Benchmarks
    Use strings.Builder em Go
    01
    03
    04
    Otimizar programas Go
    05
    06
    07
    Use sync.Pool
    Como escrever benchmarks em Go
    02
    Pprof
    Evite usar map[string]int

    View full-size slide

  3. - Compilada e estática
    - Gc (Garbage Collector)
    - Paradigma Concorrente
    - Tipagem estática
    - Semântica é clara
    - Sintaxe é limpa
    - É de uso Geral
    - Plataformas: Windows,
    Linux, Mac e FreeBSD
    Características

    View full-size slide

  4. Use
    sync.Pool

    View full-size slide

  5. reduzir
    número de
    alocações
    salvos

    View full-size slide

  6. Evite usar
    map[string]int

    View full-size slide

  7. use
    strings.Builder

    View full-size slide

  8. Use
    Make
    evitar realocação

    View full-size slide

  9. danger
    fast
    better
    good

    View full-size slide

  10. “testing”
    *testing.B

    View full-size slide

  11. -> go tool pprof --text ./gostring.test cpu.pprof
    -> pprof -http=localhost:6060 pprof-2 cpu.pprof

    View full-size slide

  12. referências
    https://github.com/jeffotoni/goexample/tree/master/performance
    Sources da apresentação
    https://dave.cheney.net/2013/06/30/how-to-write-benchmarks-in-go
    https://golang.org/pkg/testing/
    https://golang.org/pkg/net/http/pprof/
    https://blog.golang.org/profiling-go-programs
    https://medium.com/justforfunc/analyzing-the-performance-of-go-functions-with-benchmarks-60b8162e61c6
    links

    View full-size slide

  13. Thanks := &Obrigado{...}
    Obrigado...
    github.com/jeffotoni
    instagram.com/jeffotoni
    https://t.me/devopsbh
    https://t.me/go_br
    https://t.me/awsbrasil
    linkedin.com/in/jeffotoni/

    View full-size slide