go-perfbook README

The project's README from github.com/dgryski/go-perfbook. As one markdown file: README.md.

go-perfbook

Buy Me A Coffee

This document outlines best practices for writing high-performance Go code.

The first sections cover writing optimized code in any language. The later sections cover Go-specific techniques.

Multiple Language Versions

Table of Contents

  1. Writing and Optimizing Go code
  2. How to Optimize
    1. Optimization Workflow
    2. Concrete Optimization Tips
  3. Data Changes
  4. Algorithmic Changes
  5. Benchmark Inputs
  6. Program Tuning
  7. Optimization Workflow Summary
  8. Garbage Collection
  9. Runtime and Compiler
  10. Unsafe
  11. Common gotchas with the standard library
  12. Alternate Implementations
  13. CGO
  14. Advanced Techniques
  15. Assembly
  16. Optimizing an Entire Service
  17. Tooling
    1. Profiling
    2. Tracer
  18. Appendix
    1. Implementing Research Papers

Contributing

This is a work-in-progress book in Go performance.

There are different ways to contribute:

  1. add to or summarizes the resources in TODO
  2. add bullet points or new topics to be covered
  3. write prose and flesh out the sections in the book

Eventually sample programs to optimize and exercises will be needed (maybe).

Coordination will be done in the #performance channel on the Gophers slack.

go-perfbook (dgryski/go-perfbook)

Searching Database…

Что это?Это бесплатная, пока не завершённая книга о лучших практиках написания высокопроизводительного кода на Go, охватывающая как общие техники оптимизации, так и специфичные для Go.
Это книга или библиотека кода?Это справочный документ в формате книги, а не библиотека или инструмент, который ставят в проект. Он организован как оглавление из глав, которые вы читаете.
С чего начать чтение?Начните с раздела «Writing and Optimizing Go code» — там о том, как оптимизировать, о рабочем процессе оптимизации и конкретных советах, а уже затем идут специфичные для Go разделы: сборка мусора, runtime/компилятор и профилирование.
Нужно ли уже знать Go?Да, специфичные для Go разделы (сборка мусора, runtime, CGO, ассемблер) предполагают, что вы уже знаете Go; более ранние общие разделы применимы к любому языку.
Книга завершена?Нет, прямо сказано, что работа в процессе — некоторые разделы представляют собой лишь пункты списка или заглушки TODO, которые ещё предстоит расписать в связный текст, а упражнения и примеры программ пока отсутствуют.
Есть ли он на языках, кроме английского?Да, помимо английского оригинала есть переводы на китайский, испанский и бразильский португальский.
Охватывает ли книга инструменты профилирования?Да, есть отдельный раздел Tooling, посвящённый Profiling и Tracer, плюс приложение о реализации исследовательских статей.
Creator
dgryski
Size
0.4 MB
Stars
10.9K
Updated
CommitJan 05
Age
10y
Commits · 90 Days