🇺🇦 Go performance channel
🎊 Go 1.20 Release Candidate 1 is released! 🏃♂️ Run it in dev! Run it in prod! File bugs! https://go.dev/issue/new 📣 Announcement: https://groups.google.com/g/golang-announce/c/iqUo0Spdl9I 📦 Download: https://go.dev/dl/#go1.20rc1 #golang (via https://…
#golang 1.20 adds preview support for profile-guided optimization (PGO).
#golang runtime: diagnostics improvements tracking issue
Great initiative by twitter.com/mknyswe
https://github.com/golang/go/issues/57175
Great initiative by twitter.com/mknyswe
https://github.com/golang/go/issues/57175
GitHub
runtime: performance and diagnostics meeting notes · Issue #57175 · golang/go
Since 2022, members of the Go team and the Go community have met every two weeks to discuss Go runtime topics. Until 2025 the focus was mainly on diagnostics, but we've also delved into plenty ...
CockroachDB:
We took a close look at how the Go scheduler can affect latencies, and then tried taming it by using control theory and patching the runtime.
💻 Read on: https://cockroa.ch/3WkgG5L
#golang
https://twitter.com/CockroachDB/status/1603482942499594240
We took a close look at how the Go scheduler can affect latencies, and then tried taming it by using control theory and patching the runtime.
💻 Read on: https://cockroa.ch/3WkgG5L
#golang
https://twitter.com/CockroachDB/status/1603482942499594240
Cockroach Labs
Rubbing control theory on the Go scheduler
How CockroachDB uses control theory, studies CPU scheduler latencies, builds forms of cooperative scheduling, and patches the Go runtime.
💡 Go 1.19 now includes support for a soft memory limit!
Michael Knyszek tells us what this is and how you can use it at Go Day 2022 → goo.gle/3FxDFnl
Michael Knyszek tells us what this is and how you can use it at Go Day 2022 → goo.gle/3FxDFnl
YouTube
How to avoid out-of-memory conditions in Go
In this session, Michael Knyszek discusses the new soft memory limit feature coming in Go 1.19. Watch along and learn how you can avoid out-of-memory conditions in production and improve your application's resource economy.
Speaker: Michael Knyszek
Original…
Speaker: Michael Knyszek
Original…
Faster #golang code by being mindful of memory (by @ArthurBusser)
https://f4t.dev/software/go-performance-memory/
https://f4t.dev/software/go-performance-memory/
f4t.dev
Faster Go code by being mindful of memory
Advent of Code 2022, day 6
#golang team plans for 1st half 2023: dropping non-unified IR and removing associated GOEXPERIMENT, next steps for PGO, revamping the inliner, core health CI/CD tasks, batched write barriers, <...> long-term RAM efficiency efforts. https://github.com/golang/go/issues/43930#issuecomment-1386010267
GitHub
Go compiler and runtime meeting notes · Issue #43930 · golang/go
Google's Go compiler and runtime team meets periodically (roughly weekly) to discuss ongoing development of the compiler and runtime. While not open to the public, there's been desire by th...
Reducing #golang Execution Tracer Overhead With Frame Pointer Unwinding (by @felixge )
https://blog.felixge.de/reducing-gos-execution-tracer-overhead-with-frame-pointer-unwinding/
https://blog.felixge.de/reducing-gos-execution-tracer-overhead-with-frame-pointer-unwinding/
Felix Geisendörfer
Reducing Go Execution Tracer Overhead With Frame Pointer Unwinding
Learn how frame pointer unwinding could significantly reduce the CPU overhead of the Go execution tracer.
Go 1.20 released https://twitter.com/golang/status/1620875197569187840
In #Golang 1.20 the Go team introduced an experimental new method of memory management called Go arenas.
In this blog post we show how we combined continuous profiling with memory arenas to improve performance of one of our cloud services by ~8% !
https://pyroscope.io/blog/go-1-20-memory-arenas/
In this blog post we show how we combined continuous profiling with memory arenas to improve performance of one of our cloud services by ~8% !
https://pyroscope.io/blog/go-1-20-memory-arenas/
pyroscope.io
Go 1.20 Experiment: Memory Arenas vs Traditional Memory Management | Open Source Continuous Profiling Platform
Go 1.20 Experiment with Memory Arenas
Fast and dynamic encoding of Protocol Buffers in #golang
https://vincent.bernat.ch/en/blog/2023-dynamic-protobuf-golang
https://vincent.bernat.ch/en/blog/2023-dynamic-protobuf-golang
vincent.bernat.ch
Fast and dynamic encoding of Protocol Buffers in Go
Encoding to Protocol Buffers usually require a proto definition file. But, by using low-level primitives and a code-defined schema, fast encoding...
Exploring Go's Profile-Guided Optimizations
https://www.polarsignals.com/blog/posts/2022/09/exploring-go-profile-guided-optimizations/
https://www.polarsignals.com/blog/posts/2022/09/exploring-go-profile-guided-optimizations/
Efficient Go APIs with the mid-stack inliner (2019) by Filippo Valsorda
https://words.filippo.io/efficient-go-apis-with-the-inliner/
https://words.filippo.io/efficient-go-apis-with-the-inliner/
Filippo Valsorda
Efficient Go APIs with the mid-stack inliner
A common task in Go API design is returning a byte slice. In this post I will explore some old techniques and a new one. In particular, we'll see how the mid-stack inliner interacts with escape analysis to make it possible for the most natural API to be also…
- #golang PGO will be auto by default in Go 1.21
- First PGO result from a google-internal app yields -2.75% CPU
- We might get better regalloc (registry allocator) (5% CPU gain)
Do you have any success stories by running PGO ? Please share!
Source: https://github.com/golang/go/issues/43930#issuecomment-1468713261
- First PGO result from a google-internal app yields -2.75% CPU
- We might get better regalloc (registry allocator) (5% CPU gain)
Do you have any success stories by running PGO ? Please share!
Source: https://github.com/golang/go/issues/43930#issuecomment-1468713261
GitHub
Go compiler and runtime meeting notes · Issue #43930 · golang/go
Google's Go compiler and runtime team meets periodically (roughly weekly) to discuss ongoing development of the compiler and runtime. While not open to the public, there's been desire by th...