Go good reads

Index

Performance

Leveraging benchstat Projections in Go Benchmark Analysis!

Benchmarks and performance testing

New unique package by Michael Knyszek

This work also led us to reexamine finalizers, resulting in another proposal for an easier-to-use and more efficient replacement for finalizers. With a hash function for comparable values on the way as well, the future of building memory-efficient caches in Go is bright!

It is wonderful to see that the Go team is working on improving the memory management of Go.

Inline Heuristics Review

On Thursday 3/28 we held a design review looking at the new inlining heuristics framework being developed as part of the inlining overhaul effort (this was a separate session from the usual C&R meeting)

From Go compiler and runtime meeting notes

Go 1.22 inlining overhaul

pprof documentation

A Deep Look Into Golang Profile-Guided Optimization (PGO)

Profiling and Execution Tracing in Go

  • What I learned
    • pprof can diff with go tool pprof -http=:8080 -diff_base <file2> <file1>

How to Write Accurate Benchmarks in Go

  • Not resetting or pausing the timer
  • Making wrong assumptions about micro-benchmarks
  • Not being careful about compiler optimizations
  • Being fooled by the observer effect

Obscure Go Optimisations - Bryan Boreham

  • Take-aways
    • Slice-to-interface cast will allocate.
    • Heap allocation is costly.
    • Generic methods are not fast.
    • Heap Ballast is dead.
    • Long live GOMEMLIMIT!

Fixing Memory Exhaustion Bugs in My Golang Web App

Go 메모리 관련 OOM 버그를 수정하는 여정에 관한 이야기

디버깅 과정을 상세하게 공유해 주고 있으며, 특히 Other lessons learnedDead ends 파트에서 공유해준 내용에는 배울 점이 많습니다.

Bounds Check Elimination in Go 101

PGO

Generics

Deconstructing Type Parameters by The Go Blog

Reiaibility

NilAway: Practical Nil Panic Detection for Go by the Uber engineering blog

Others

Go compiler and runtime meeting notes

go HACKING.md

Go basically never frees heap memory back to the operating system

Go 1.20 Experiment: Memory Arenas vs Traditional Memory Management

Despite the tradeoffs, arena is a very cool feature.

DRAFT RELEASE NOTES — Introduction to Go 1.20

GopherCon 2021: Suzy Mueller - Debugging Treasure Hunt

GopherCon 2019: Dave Cheney - Two Go Programs, Three Different Profiling Techniques

Mythfall Devlog: Hacking Go Plugins for hot code reloading by UnitOfTime