🇺🇦 Go performance channel – Telegram
🇺🇦 Go performance channel
1.49K subscribers
41 photos
410 links
Go performance, runtime, concurrency.

Talks, blogposts and open source projects for gophers.

Not affiliated with Go team.

https://go-perf.dev

(mail: hello@go-perf.dev / @olegkovalov)
Download Telegram
#golang performance tooling tip:

go tool pprof -base=http://old.prof http://new.prof

See the difference (subtraction) between the profiles. Useful to spot what piece of code to blame for a performance regression.

Courtesy of Keith: https://golang.org/214818

Original: https://twitter.com/mvdan_/status/1217313825600364544
Escape from Escape Analysis of #golang Sounds pretty interesting!

For the code, the heap allocation -8.88%, the heap usage -8.78%. Time consumption -9.48%, cumulative time of GC pause -5.64%.

Paper http://www.wingtecher.com/themes/WingTecherResearch/assets/papers/ICSE20.pdf

Code https://github.com/wangcong15/escape-from-escape-analysis-of-golang
List of #Awesome #golang performance tools and libs.
https://github.com/cristaloleg/awesome-go-perf

Feel free to submit more!

(and sorry for a long break:)
io_uring using #golang (liburing and CGo, to be exact)

by Agniva De Sarker https://github.com/agnivade (from twitter.com/Mattermost)

https://developers.mattermost.com/blog/hands-on-iouring-go/

Also don't forget to star pure Go solution https://github.com/hodgesds/iouring-go
(but hopefully https://github.com/golang/go/issues/31908 will be implemented in std)
Understanding CPU caches and whole CPU architecture with #golang by twitter.com/teivah

By the way, pretty beautiful illustrations!

https://medium.com/@teivah/go-and-cpu-caches-af5d32cc5592
A sampling Go profiler that allows you to analyze On-CPU as well as Off-CPU (e.g. I/O) time together.

https://github.com/felixge/fgprof by twitter.com/felixge

And it's literally under 100 lines! Amazing!
#golang Goroutine lifecycle by https://github.com/jcorbin

Writing this issue out of the @GopherCon 2019 contribution workshop (additional kudos to @golang workshops!)
(from issue https://github.com/golang/go/issues/33322 )
More #golang awesomness! Happening in 1.16 🎉

Go 1.16 will include an early devirtualization pass, which allows better escape analysis of interface method calls (i.e., fewer heap allocations) when the compiler can see the interface always has a known concrete type.

https://github.com/golang/go/issues/33160

https://twitter.com/mdempsky/status/1321894360116420608
Not a direct performance thing, but #golang sync.Cond may make your concurrent work simpler (and faster too).

Thank you twitter.com/lukechampine for the article.

https://lukechampine.com/cond.html