Awesome Go performance
Collection of the Awesomeโข Go libraries, tools, project around performance.
Contents
- Algorithm
- Assembly
- Benchmarks
- Compiling
- Concurrency
- Crypto
- GC
- Hardware
- Hash
- 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.
Hash
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.
- fiber - Fiber is an Express inspired web framework built on top of Fasthttp, the fastest HTTP engine for Go. Designed to ease things up for fast development with zero memory allocation and performance in mind.
- gnet - high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go. Ranks #10 in TechEmpower Plaintext Benchmark, beating all other go frameworks.
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.
- parca - Parca is a continuous profiling project for applications and infrastructure, built with Go for Go.
- pyroscope - A modern open source continuous profiling platform for debugging Go performance issues down to a single line of code.
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).
- Go Wiki: Compiler And Runtime Optimizations
Other
- templexxx/tsc - Get unix time (nanoseconds) in 8ns, 10x faster than stdlib.