Collection of the Awesome™ Go libraries, tools, project around performance.
- Algorithm
- Assembly
- Benchmarks
- Compiling
- Compression
- Concurrency
- Crypto
- GC
- Hardware
- Hash
- I/O
- Math
- Network
- Profiling
- Storage
- Testing
- Articles
- Other
- shawnsmithdev/zermelo - A radix sorting library for Go.
- go/doc/asm - A Quick Guide to Go's Assembler.
- mmcloughlin/avo - Generate x86 Assembly with Go.
- CAFxX/atomics - All the missing AMD64 atomic instructions.
- x/perf/cmd/benchstat - Benchstat computes statistical summaries and A/B comparisons of Go benchmarks.
- storozhukBM/benchart - Tool that takes
benchstat -csv
output as an input and plots results of your benchmark in a html file. - quasilyte/go-benchrun - Convenience wrapper around "go test" + "benchstat".
- jordanlewis/gcassert - Assert your Go code is inlined and bounds-check eliminated.
- klauspost/compress - Optimized Go Compression Packages.
- pierrec/lz4 - LZ4 compression and decompression in pure Go.
- bcicen/grmon - Command line monitoring for goroutines.
- jonhoo/drwmutex - Distributed RWMutex in Go.
- CAFxX/gcnotifier - Know when GC runs from inside your golang code.
- klauspost/cpuid - Provides information about the CPU running the current program.
- minio/md5-simd - Accelerate aggregated MD5 hashing performance up to 8x for AVX512 and 4x for AVX2.
- zeebo/xxh3 - XXH3 algorithm in Go.
- ncw/directio - This is library for the Go language to enable use of Direct IO under all OSes.
- smallnest/preallocate - File preallocation library.
- bmkessler/fastdiv - Fast division, modulus and divisibility checks in Go for divisors known only at runtime.
- valyala/fasthttp - Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http.
- gnet - high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go.
- 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.
- philpearl/stringbank - Storing strings without GC overhead.
- The official HOW-TO on app diagnostics.
- Debugging performance issues in Go programs by Dmitry Vyukov (2014).
- Go Wiki: Compiler And Runtime Optimizations
- High Performance Go workshop by Dave Cheney (2019)
- templexxx/tsc - Get unix time (nanoseconds) in 8ns, 10x faster than stdlib.