├── .github └── workflows │ └── publish-latest.yml ├── .gitignore ├── LICENSE ├── README.md ├── docs ├── 01-common-patterns │ ├── atomic-ops.md │ ├── batching-ops.md │ ├── buffered-io.md │ ├── comp-flags.md │ ├── context.md │ ├── fields-alignment.md │ ├── gc.md │ ├── immutable-data.md │ ├── index.md │ ├── interface-boxing.md │ ├── lazy-init.md │ ├── mem-prealloc.md │ ├── object-pooling.md │ ├── src │ │ ├── atomic-ops_test.go │ │ ├── batching-ops_test.go │ │ ├── buffered-io_test.go │ │ ├── fields-alignment_test.go │ │ ├── interface-boxing_test.go │ │ ├── mem-prealloc_test.go │ │ ├── object-pooling_test.go │ │ ├── stack-alloc_test.go │ │ ├── worker-pool_test.go │ │ └── zero-copy_test.go │ ├── stack-alloc.md │ ├── worker-pool.md │ └── zero-copy.md ├── 02-networking │ ├── 10k-connections.md │ ├── a-bit-more-tuning.md │ ├── bench-and-load.md │ ├── connection_observability.md │ ├── dns_performance.md │ ├── efficient-net-use.md │ ├── gc-endpoint-profiling.md │ ├── img │ │ ├── cpu.prof.png │ │ └── mem.prof.png │ ├── index.md │ ├── long-lived-connections.md │ ├── low-level-optimizations.md │ ├── networking-internals.md │ ├── quic-in-go.md │ ├── resilient-connection-handling.md │ ├── src │ │ ├── echo-epoll.go │ │ ├── echo-net-base.go │ │ ├── echo-net-trace.go │ │ ├── echo-net.go │ │ ├── net-app.go │ │ ├── quic_client.go │ │ ├── quic_server.go │ │ ├── thread-lock-buff_test.go │ │ ├── thread-lock-jitter_test.go │ │ ├── thread-lock-mixed_test.go │ │ └── thread-lock_test.go │ ├── tcp-http2-grpc.md │ └── tls-for-speed.md ├── CNAME ├── blog │ ├── index.md │ └── posts │ │ ├── atomic_init.md │ │ └── cpp_optimizations_can_slow_go.md └── index.md ├── env.sh ├── go.mod ├── go.sum └── mkdocs.yml /.github/workflows/publish-latest.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/.github/workflows/publish-latest.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/README.md -------------------------------------------------------------------------------- /docs/01-common-patterns/atomic-ops.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/atomic-ops.md -------------------------------------------------------------------------------- /docs/01-common-patterns/batching-ops.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/batching-ops.md -------------------------------------------------------------------------------- /docs/01-common-patterns/buffered-io.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/buffered-io.md -------------------------------------------------------------------------------- /docs/01-common-patterns/comp-flags.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/comp-flags.md -------------------------------------------------------------------------------- /docs/01-common-patterns/context.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/context.md -------------------------------------------------------------------------------- /docs/01-common-patterns/fields-alignment.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/fields-alignment.md -------------------------------------------------------------------------------- /docs/01-common-patterns/gc.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/gc.md -------------------------------------------------------------------------------- /docs/01-common-patterns/immutable-data.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/immutable-data.md -------------------------------------------------------------------------------- /docs/01-common-patterns/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/index.md -------------------------------------------------------------------------------- /docs/01-common-patterns/interface-boxing.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/interface-boxing.md -------------------------------------------------------------------------------- /docs/01-common-patterns/lazy-init.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/lazy-init.md -------------------------------------------------------------------------------- /docs/01-common-patterns/mem-prealloc.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/mem-prealloc.md -------------------------------------------------------------------------------- /docs/01-common-patterns/object-pooling.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/object-pooling.md -------------------------------------------------------------------------------- /docs/01-common-patterns/src/atomic-ops_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/src/atomic-ops_test.go -------------------------------------------------------------------------------- /docs/01-common-patterns/src/batching-ops_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/src/batching-ops_test.go -------------------------------------------------------------------------------- /docs/01-common-patterns/src/buffered-io_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/src/buffered-io_test.go -------------------------------------------------------------------------------- /docs/01-common-patterns/src/fields-alignment_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/src/fields-alignment_test.go -------------------------------------------------------------------------------- /docs/01-common-patterns/src/interface-boxing_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/src/interface-boxing_test.go -------------------------------------------------------------------------------- /docs/01-common-patterns/src/mem-prealloc_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/src/mem-prealloc_test.go -------------------------------------------------------------------------------- /docs/01-common-patterns/src/object-pooling_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/src/object-pooling_test.go -------------------------------------------------------------------------------- /docs/01-common-patterns/src/stack-alloc_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/src/stack-alloc_test.go -------------------------------------------------------------------------------- /docs/01-common-patterns/src/worker-pool_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/src/worker-pool_test.go -------------------------------------------------------------------------------- /docs/01-common-patterns/src/zero-copy_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/src/zero-copy_test.go -------------------------------------------------------------------------------- /docs/01-common-patterns/stack-alloc.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/stack-alloc.md -------------------------------------------------------------------------------- /docs/01-common-patterns/worker-pool.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/worker-pool.md -------------------------------------------------------------------------------- /docs/01-common-patterns/zero-copy.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/01-common-patterns/zero-copy.md -------------------------------------------------------------------------------- /docs/02-networking/10k-connections.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/10k-connections.md -------------------------------------------------------------------------------- /docs/02-networking/a-bit-more-tuning.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/a-bit-more-tuning.md -------------------------------------------------------------------------------- /docs/02-networking/bench-and-load.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/bench-and-load.md -------------------------------------------------------------------------------- /docs/02-networking/connection_observability.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/connection_observability.md -------------------------------------------------------------------------------- /docs/02-networking/dns_performance.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/dns_performance.md -------------------------------------------------------------------------------- /docs/02-networking/efficient-net-use.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/efficient-net-use.md -------------------------------------------------------------------------------- /docs/02-networking/gc-endpoint-profiling.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/gc-endpoint-profiling.md -------------------------------------------------------------------------------- /docs/02-networking/img/cpu.prof.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/img/cpu.prof.png -------------------------------------------------------------------------------- /docs/02-networking/img/mem.prof.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/img/mem.prof.png -------------------------------------------------------------------------------- /docs/02-networking/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/index.md -------------------------------------------------------------------------------- /docs/02-networking/long-lived-connections.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/long-lived-connections.md -------------------------------------------------------------------------------- /docs/02-networking/low-level-optimizations.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/low-level-optimizations.md -------------------------------------------------------------------------------- /docs/02-networking/networking-internals.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/networking-internals.md -------------------------------------------------------------------------------- /docs/02-networking/quic-in-go.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/quic-in-go.md -------------------------------------------------------------------------------- /docs/02-networking/resilient-connection-handling.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/resilient-connection-handling.md -------------------------------------------------------------------------------- /docs/02-networking/src/echo-epoll.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/src/echo-epoll.go -------------------------------------------------------------------------------- /docs/02-networking/src/echo-net-base.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/src/echo-net-base.go -------------------------------------------------------------------------------- /docs/02-networking/src/echo-net-trace.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/src/echo-net-trace.go -------------------------------------------------------------------------------- /docs/02-networking/src/echo-net.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/src/echo-net.go -------------------------------------------------------------------------------- /docs/02-networking/src/net-app.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/src/net-app.go -------------------------------------------------------------------------------- /docs/02-networking/src/quic_client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/src/quic_client.go -------------------------------------------------------------------------------- /docs/02-networking/src/quic_server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/src/quic_server.go -------------------------------------------------------------------------------- /docs/02-networking/src/thread-lock-buff_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/src/thread-lock-buff_test.go -------------------------------------------------------------------------------- /docs/02-networking/src/thread-lock-jitter_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/src/thread-lock-jitter_test.go -------------------------------------------------------------------------------- /docs/02-networking/src/thread-lock-mixed_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/src/thread-lock-mixed_test.go -------------------------------------------------------------------------------- /docs/02-networking/src/thread-lock_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/src/thread-lock_test.go -------------------------------------------------------------------------------- /docs/02-networking/tcp-http2-grpc.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/tcp-http2-grpc.md -------------------------------------------------------------------------------- /docs/02-networking/tls-for-speed.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/02-networking/tls-for-speed.md -------------------------------------------------------------------------------- /docs/CNAME: -------------------------------------------------------------------------------- 1 | goperf.dev 2 | -------------------------------------------------------------------------------- /docs/blog/index.md: -------------------------------------------------------------------------------- 1 | # Blog 2 | 3 | -------------------------------------------------------------------------------- /docs/blog/posts/atomic_init.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/blog/posts/atomic_init.md -------------------------------------------------------------------------------- /docs/blog/posts/cpp_optimizations_can_slow_go.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/blog/posts/cpp_optimizations_can_slow_go.md -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/docs/index.md -------------------------------------------------------------------------------- /env.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/env.sh -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/go.sum -------------------------------------------------------------------------------- /mkdocs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astavonin/go-optimization-guide/HEAD/mkdocs.yml --------------------------------------------------------------------------------