πŸ‡ΊπŸ‡¦ Go performance channel's Avatar

πŸ‡ΊπŸ‡¦ Go performance channel

@go-perf.dev

#golang performance, runtime, concurrency. Talks, blogposts and open source projects for #gophers (mail: hello@go-perf.dev). Not affiliated with Go team. https://go-perf.dev/

646
Followers
17
Following
69
Posts
26.02.2024
Joined
Posts Following

Latest posts by πŸ‡ΊπŸ‡¦ Go performance channel @go-perf.dev

archsimd package - simd/archsimd - Go Packages

Package archsimd provides access to architecture-specific SIMD operations.
This is a low-level package that exposes hardware-specific functionality. It currently supports AMD64.

This package is experimental, and not subject to the #golang

pkg.go.dev/simd/archsim...

05.01.2026 21:28 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
$ go install golang.org/dl/go1.25.5@latest
$ go1.25.5 download
Downloaded   0.0% (       0 / 57815527 bytes) ...
Downloaded  50.0% (28907763 / 57815527 bytes) ...
Downloaded 100.0% (57815527 / 57815527 bytes)
Unpacking go1.25.5.openbsd-riscv64.tar.gz ...
Success. You may now run 'go1.25.5'
$ go1.25.5 version
go version go1.25.5 openbsd/riscv64

$ go install golang.org/dl/go1.25.5@latest $ go1.25.5 download Downloaded 0.0% ( 0 / 57815527 bytes) ... Downloaded 50.0% (28907763 / 57815527 bytes) ... Downloaded 100.0% (57815527 / 57815527 bytes) Unpacking go1.25.5.openbsd-riscv64.tar.gz ... Success. You may now run 'go1.25.5' $ go1.25.5 version go version go1.25.5 openbsd/riscv64

πŸ₯³ Go 1.25.5 and 1.24.11 are released!

πŸ” Security: Includes security fixes for crypto/x509 (CVE-2025-61729, CVE-2025-61727).

πŸ—£ Announcement: https://groups.google.com/g/golang-announce/c/8FJoBkPddm4/m/kYpVlPw1CQAJ

πŸ“¦ Download: https://go.dev/dl/#go1.25.5

#golang

02.12.2025 16:54 πŸ‘ 36 πŸ” 13 πŸ’¬ 0 πŸ“Œ 0
Gerrit Code Review

strconv: replace Ryu ftoa with Dragonbox

The new implementation has been fuzz-tested against the current
Ryu implementation in addition to the existing test suite.
Benchmarks show at least ~15-20% performance improvement.

go-review.googlesource.com/c/go/+/700075 #golang

26.11.2025 10:02 πŸ‘ 4 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

β€œGo’s Sweet 16” by Austin Clements, for the Go team β€” https://go.dev/blog/16years

#golang

14.11.2025 22:30 πŸ‘ 43 πŸ” 19 πŸ’¬ 1 πŸ“Œ 2

β€œThe Green Tea Garbage Collector” by Michael Knyszek and Austin Clements β€” https://go.dev/blog/greenteagc

#golang

29.10.2025 16:58 πŸ‘ 54 πŸ” 17 πŸ’¬ 1 πŸ“Œ 3
Preview
Memory Allocation in Go Memory Allocation in Go

Memory Allocation in #golang

nghiant3223.github.io/2025/06/03/m...

22.09.2025 18:30 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Swiss Maps in Go - Bryan Boreham
Swiss Maps in Go - Bryan Boreham YouTube video by GopherCon UK

Video is up now - my take on how map is implemented in Go, and what changed from Go 1.23 to 1.24 and 1.25.

youtu.be/M05t7Q6LbFs

22.09.2025 11:11 πŸ‘ 10 πŸ” 3 πŸ’¬ 1 πŸ“Œ 0
Post image

Making `DecodeRuneInString` is inlinable #golang

github.com/golang/go/is...

28.08.2025 11:07 πŸ‘ 7 πŸ” 3 πŸ’¬ 0 πŸ“Œ 0
Preview
proposal: simd: architecture-specific SIMD intrinsics under a GOEXPERIMENT Β· Issue #73787 Β· golang/go Update (08/20/2025): A preliminary implementation of AMD64 low-level SIMD package is being developed on the dev.simd branch. You're welcome to check it out and try it with your use cases. Feedback ...

proposal: simd: architecture-specific SIMD intrinsics under a GOEXPERIMENT #golang

github.com/golang/go/is...

27.08.2025 19:03 πŸ‘ 1 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Post image

πŸ”₯πŸ”₯πŸ”₯ #golang github.com/golang/go/is...

20.08.2025 19:12 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

β€œContainer-aware GOMAXPROCS” by Michael Pratt and Carlos Amedee β€” https://go.dev/blog/container-aware-gomaxprocs

#golang

20.08.2025 15:37 πŸ‘ 37 πŸ” 8 πŸ’¬ 0 πŸ“Œ 1
$ go install golang.org/dl/go1.25.0@latest
$ go1.25.0 download
Downloaded   0.0% (       0 / 58130695 bytes) ...
Downloaded  50.0% (29065347 / 58130695 bytes) ...
Downloaded 100.0% (58130695 / 58130695 bytes)
Unpacking go1.25.0.freebsd-arm.tar.gz ...
Success. You may now run 'go1.25.0'
$ go1.25.0 version
go version go1.25.0 freebsd/arm

$ go install golang.org/dl/go1.25.0@latest $ go1.25.0 download Downloaded 0.0% ( 0 / 58130695 bytes) ... Downloaded 50.0% (29065347 / 58130695 bytes) ... Downloaded 100.0% (58130695 / 58130695 bytes) Unpacking go1.25.0.freebsd-arm.tar.gz ... Success. You may now run 'go1.25.0' $ go1.25.0 version go version go1.25.0 freebsd/arm

🎊 Go 1.25.0 is released!

πŸ“ Release notes: https://go.dev/doc/go1.25

⬇️ Download: https://go.dev/dl/#go1.25.0

#golang

12.08.2025 21:58 πŸ‘ 192 πŸ” 55 πŸ’¬ 4 πŸ“Œ 11
Preview
How Go 1.24's Swiss Tables saved us hundreds of gigabytes | Datadog Go 1.24's Swiss Tables cut our map memory usage by up to 70% in high-traffic workloads. Here's how we profiled the savings and improved performance.

How Go 1.24's Swiss Tables saved us hundreds of gigabytes
#golang www.datadoghq.com/blog/enginee...

25.07.2025 12:28 πŸ‘ 6 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
Preview
How to store Go pointers from assembly The standard Go toolchain comes with an assembler out of the box. Said assembler is highly idiosyncratic, using syntax inherited from Plan 9 and choosing its own names for platform-specific instructio...

How to store Go pointers from assembly mazzo.li/posts/go-asm... #golang

23.06.2025 15:03 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
GitHub - jordanlewis/gcassert: Assert your Go code is inlined and bounds-check eliminated Assert your Go code is inlined and bounds-check eliminated - jordanlewis/gcassert

Assert your #golang code is inlined and bounds-check eliminated

github.com/jordanlewis/...

07.05.2025 07:52 πŸ‘ 5 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
Golang sync.Pool is not a silver bullet A deep dive into Go's sync.Pool, its benefits, pitfalls, and when to use it (or not)

Golang sync.Pool is not a silver bullet

wundergraph.com/blog/golang-... #golang

12.04.2025 07:10 πŸ‘ 8 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
proposal: runtime: CPU limit-aware GOMAXPROCS default Β· Issue #73193 Β· golang/go Overview Change the Go runtime on Linux to use CPU cgroup quota limits to set the default value of GOMAXPROCS. This is a concrete proposal for the ideas discussed in #33803. I've included a lot of ...

proposal: runtime: CPU limit-aware GOMAXPROCS default #golang

github.com/golang/go/is... by @prattmic.com

07.04.2025 05:49 πŸ‘ 4 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
More predictable benchmarking with testing.B.Loop - The Go Programming Language Better benchmark looping in Go 1.24.

More predictable benchmarking with testing.B.Loop #golang go.dev/blog/testing...

02.04.2025 18:52 πŸ‘ 6 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
[security] Go 1.24.2 and Go 1.23.8 are released

🎊 Go 1.24.2 and 1.23.8 are released!

πŸ” Security: Includes a security fix for net/http (CVE-2025-22871).

πŸ“£ Announcement: groups.google.com/g/golang-ann...

πŸ“¦ Download: go.dev/dl/#go1.24.2

#golang

01.04.2025 19:34 πŸ‘ 3 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
func mult(a, b float64) float64 {
	return a * b
}

func Benchmark1(b *testing.B) {
	for i := 0; i < b.N; i++ {
		mult(3.0, 5.0)
	}
}

func Benchmark2(b *testing.B) {
	for range b.N {
		mult(3.0, 5.0)
	}
}

func Benchmark3(b *testing.B) {
	for b.Loop() {
		mult(3.0, 5.0)
	}
}

func mult(a, b float64) float64 { return a * b } func Benchmark1(b *testing.B) { for i := 0; i < b.N; i++ { mult(3.0, 5.0) } } func Benchmark2(b *testing.B) { for range b.N { mult(3.0, 5.0) } } func Benchmark3(b *testing.B) { for b.Loop() { mult(3.0, 5.0) } }

This is important: is the new Go 1.24 benchmark loop syntax making my code 7x slower, and why?
#golang

21.03.2025 13:14 πŸ‘ 21 πŸ” 6 πŸ’¬ 1 πŸ“Œ 0
Preview
Diagnostics - The Go Programming Language

Diagnostics wiki go.dev/doc/diagnost... #golang

22.03.2025 08:41 πŸ‘ 4 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
Faster interpreters in Go: Catching up with C++ β€” PlanetScale A novel technique for implementing dynamic language interpreters in Go, applied to the Vitess SQL evaluation engine

Faster interpreters in Go: Catching up with C++

planetscale.com/blog/faster-... #golang

20.03.2025 20:37 πŸ‘ 29 πŸ” 7 πŸ’¬ 1 πŸ“Œ 0
Preview
cmd/compile: slow escape analysis in large package in the typescript compiler Β· Issue #72815 Β· golang/go Go version go version go1.24.1 linux/amd64 Output of go env in your module/workspace: AR='ar' CC='gcc' CGO_CFLAGS='-O2 -g' CGO_CPPFLAGS='' CGO_CXXFLAGS='-O2 -g' CGO_ENABLED='1' CGO_FFLAGS='-O2 -g' ...

Awesome work by @thepudds.bsky.social github.com/golang/go/is...

Compiling the typescript compiler went from 70s to 30s !

13.03.2025 10:44 πŸ‘ 50 πŸ” 10 πŸ’¬ 2 πŸ“Œ 0
Preview
Pres Mihaylov on X: "Someone on the Go team decided to take a "quick stab" at fixing a small bug in Go's escape analysis, resulting in a 5x increase in typescript performance. Why Go you ask? https://t.co/ez7sD590zg" / X Someone on the Go team decided to take a "quick stab" at fixing a small bug in Go's escape analysis, resulting in a 5x increase in typescript performance. Why Go you ask? https://t.co/ez7sD590zg

Someone on the Go team decided to take a "quick stab" at fixing a small bug in Go's escape analysis, resulting in a 5x increase in typescript performance.

Why Go you ask? #golang

x.com/PreslavMihay...

link to the issue github.com/golang/go/is...

14.03.2025 16:27 πŸ‘ 7 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
From unique to cleanups and weak: new low-level tools for efficiency - The Go Programming Language Weak pointers and better finalization in Go 1.24.

From unique to cleanups and weak: new low-level tools for efficiency

go.dev/blog/cleanup... #golang

07.03.2025 07:51 πŸ‘ 3 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
[security] Go 1.24.1 and Go 1.23.7 are released

πŸŽ‰ Go 1.24.1 and 1.23.7 are released!

πŸ” Security: Includes a security fix for net/http (CVE-2025-22870)

πŸ—£ Announcement: groups.google.com/g/golang-ann...

πŸ—ƒ Download: go.dev/dl/#go1.24.1

#golang

04.03.2025 20:44 πŸ‘ 4 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
Preview
Faster Go maps with Swiss Tables - The Go Programming Language Go 1.24 improves map performance with a brand new map implementation

"Faster Go maps with Swiss Tables" by Michael Pratt β€” go.dev/blog/swissta...

#golang

04.03.2025 20:43 πŸ‘ 3 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
cmd/compile: poor spill decisions making code 14% slower Β· Issue #71868 Β· golang/go At commit 266b0cf from earlier today (but also with some older toolchains, not claiming the behavior is new), suppose you: GOOS=linux GOARCH=amd64 go test -c math/big go tool objdump -s big.nat.sca...

cmd/compile: poor spill decisions making code 14% slower

github.com/golang/go/is...

#golang

22.02.2025 22:56 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Go 1.24 Release Notes - The Go Programming Language

🧨 Go 1.24.0 is released!

πŸ“ Release notes: go.dev/doc/go1.24

⬇️ Download: go.dev/dl/#go1.24.0

#golang

12.02.2025 07:26 πŸ‘ 13 πŸ” 3 πŸ’¬ 0 πŸ“Œ 0
Preview
design: add 54805-go-dynamic-tls.md by amusman Β· Pull Request #56 Β· golang/proposal design: add 54805-go-dynamic-tls.md

Proposal: Go general dynamic TLS (Thread Local Storage)

github.com/golang/propo... #golang

27.01.2025 13:53 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0