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...
runwww.tgoop.com/cgo: store M for C-created thread in pthread key
BenchmarkCGoInCThread results:
1. it's 28x faster, 3395 ns/op -> 121 ns/op, macOS & Intel i7-9750H CPU
2. it's 6.5x faster, 1495 ns/op -> 230 ns/op, Linux & Intel Xeon CPU E5-2630
https://go-review.googlesource.com/c/go/+/392854 #golang
BenchmarkCGoInCThread results:
1. it's 28x faster, 3395 ns/op -> 121 ns/op, macOS & Intel i7-9750H CPU
2. it's 6.5x faster, 1495 ns/op -> 230 ns/op, Linux & Intel Xeon CPU E5-2630
https://go-review.googlesource.com/c/go/+/392854 #golang
Great #golang guides are coming! At least might be. From https://github.com/golang/go/issues/43930#issuecomment-1487438236
We are now using Swissmap, a new @golang hash table based on SwissTable that is faster and uses less memory than Golang's built-in map.
This blog by @AndyArt58355407 covers the motivation, design, and implementation of SwissMap for Dolt.
https://dolthub.com/blog/2023-03-28-swiss-map/
This blog by @AndyArt58355407 covers the motivation, design, and implementation of SwissMap for Dolt.
https://dolthub.com/blog/2023-03-28-swiss-map/
Dolthub
SwissMap: A smaller, faster Golang Hash Table
Initial release of SwissMap, a Golang port of Abseil's flat_hash_map.
High-performance JSON parsing in #golang by @CockroachDB
https://www.cockroachlabs.com/blog/high-performance-json-parsing/
https://www.cockroachlabs.com/blog/high-performance-json-parsing/
Cockroachlabs
High-performance JSON parsing in Go
This blog post is an exploration of JSON parser performance, and, ultimately, a description of the high-performance JSON parser used in CockroachDB.
crypto/sha256: add native SHA256 instruction implementation for AMD64 #golang merged 🚀
https://github.com/golang/go/issues/50543
https://github.com/golang/go/issues/50543
GitHub
crypto/sha256: add native SHA256 instruction implementation for AMD64 · Issue #50543 · golang/go
The sha_ni sha256 instructions have been shown to provide an ~4x increase in hash rate on newer amd64 systems versus the avx2 implementation. Transliterating the Linux implementation shows an up to...
Our Mad Journey of Building a Vector Database in #golang by @weaviate_io
https://www.youtube.com/watch?v=K1R7oK2piUM
https://www.youtube.com/watch?v=K1R7oK2piUM
YouTube
Our Mad Journey of Building a Vector Database in Go - Weaviate at FOSDEM 2023
Building a database from scratch is no small feat. Doing so in Go might just be pure madness. In this talk, Co-Founder & CTO Etienne Dilocker highlights the unique challenges and their creative solutions that our development team encountered while building…
Userspace WireGuard doesn't have to be slow. We've made some changes that let us saturate 10Gb/s and push wireguard-go past even the kernel WireGuard driver.
https://tailscale.com/blog/more-throughput/
https://tailscale.com/blog/more-throughput/
Tailscale
Surpassing 10Gb/s with Tailscale: Performance Gains on Linux
Discover how Tailscale achieved over 10Gb/s throughput on Linux using advanced UDP segmentation and checksum optimizations. Explore benchmarks, results, and the innovations powering wireguard go's latest performance leap.
Don't let memory leaks go undetected in your #golang application! Our latest blog post shows you how to use Grafana #Pyroscope to continuously profile and catch them early.
https://grafana.com/blog/2023/04/19/how-to-troubleshoot-memory-leaks-in-go-with-grafana-pyroscope/?mdm=social
https://grafana.com/blog/2023/04/19/how-to-troubleshoot-memory-leaks-in-go-with-grafana-pyroscope/?mdm=social
Grafana Labs
How to troubleshoot memory leaks in Go with Grafana Pyroscope | Grafana Labs
Explore common causes of memory leaks in Go and learn to use Grafana Pyroscope, an open source continuous profiling solution, to find and fix these leaks.
Allow more inlining of functions that construct closures #golang
> This will help significantly with the performance of the functions <...>, which have a somewhat complicated nesting of closures with a performance-critical fast path.
https://go-review.googlesource.com/c/go/+/482356
> This will help significantly with the performance of the functions <...>, which have a somewhat complicated nesting of closures with a performance-critical fast path.
https://go-review.googlesource.com/c/go/+/482356
cmd/compile: add reassociate pass to rebalance commutative operations.
That's one small SSA pass for compiler, one giant leap for #golang performance 😉
https://github.com/golang/go/pull/60015
That's one small SSA pass for compiler, one giant leap for #golang performance 😉
https://github.com/golang/go/pull/60015
GitHub
cmd/compile: add reassociate pass to rebalance commutative operations by ryan-berger · Pull Request #60015 · golang/go
Currently the compiler groups expressions with commutative operations such as a + b + c + d as so: (a + (b + (c + d))) which is suboptimal for CPU instruction pipelining.
This pass balances commuta...
This pass balances commuta...
The absurd cost of finalizers in #golang by @lemire
https://lemire.me/blog/2023/05/19/the-absurd-cost-of-finalizers-in-go/
https://lemire.me/blog/2023/05/19/the-absurd-cost-of-finalizers-in-go/