Awesome Go performance
Collection of the Awesome™ Go libraries, tools, project around performance.
Contents
- Algorithm
- Assembly
- Benchmarks
- Compiling
- Concurrency
- Crypto
- GC
- Hardware
- I/O
- Math
- Network
- Profiling
- Storage
- Testing
- Articles
- Other
Algorithm
- shawnsmithdev/zermelo - A radix sorting library for Go.
Assembly
- mmcloughlin/avo - Generate x86 Assembly with Go.
- CAFxX/atomics - All the missing AMD64 atomic instructions.
Benchmarks
- benchstat - Benchstat computes and compares statistics about benchmarks.
- go-benchrun - Convenience wrapper around "go test" + "benchstat".
Compiling
- gcassert - Assert your Go code is inlined and bounds-check eliminated.
Concurrency
Crypto
- md5-simd - Accelerate aggregated MD5 hashing performance up to 8x for AVX512 and 4x for AVX2.
GC
- gcnotifier - Know when GC runs from inside your golang code.
Hardware
- klauspost/cpuid - Provides information about the CPU running the current program.
IO
- preallocate - File preallocation library
Math
- fastdiv - Fast division, modulus and divisibility checks in Go for divisors known only at runtime.
Network
- fasthttp - Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http.
Profiling
- profefe - Continuous profiling data collecting.
- google/pprof - pprof is a tool for visualization and analysis of profiling data.
- felixge/fgprof - a sampling Go profiler that allows you to analyze On-CPU as well as Off-CPU (e.g. I/O) time together.
Storage
- stringbank - Storing strings without GC overhead.
Testing
Articles
- The official HOW-TO on app diagnostics.
- Debugging performance issues in Go programs by Dmitry Vyukov (2014).
Other
- templexxx/tsc - Get unix time (nanoseconds) in 8ns, 10x faster than stdlib.