Famous story from Uber: How Uber Halved Our Metrics Ingestion Latency by (Briefly) Forking the #golang Compiler
https://eng.uber.com/optimizing-m3/
https://eng.uber.com/optimizing-m3/
Despite the fact that #golang finalizers are dangerous (if you're not paying attention) they really might improve performance of your application and give additional benefits.
See: Autopool Speeding Up gRPC With Finalizers
https://gophersre.com/2019/12/31/autopool/
Repo: https://github.com/johnsiilver/golib/tree/master/development/autopool/blend
See: Autopool Speeding Up gRPC With Finalizers
https://gophersre.com/2019/12/31/autopool/
Repo: https://github.com/johnsiilver/golib/tree/master/development/autopool/blend
Scheduling and GC article also have part 2,3, don't forget to read them too π #golang
RT:
Here are the top blog posts from 2019:
1. Iterating Over Slices In Go
https://www.ardanlabs.com/blog/2013/09/iterating-over-slices-in-go.html
2. Scheduling In Go: Part I - OS Scheduler
https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part1.html
3. Garbage Collection In Go: Part I - Semantics
https://www.ardanlabs.com/blog/2018/12/garbage-collection-in-go-part1-semantics.html
RT:
Here are the top blog posts from 2019:
1. Iterating Over Slices In Go
https://www.ardanlabs.com/blog/2013/09/iterating-over-slices-in-go.html
2. Scheduling In Go: Part I - OS Scheduler
https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part1.html
3. Garbage Collection In Go: Part I - Semantics
https://www.ardanlabs.com/blog/2018/12/garbage-collection-in-go-part1-semantics.html
(I'm sorry for a little break, but...)
If you're going to work with UDP sockets in #golang be aware of this article (2018). Bunch of details, explanations and examples. Thank you twitter.com/cirowrc
https://ops.tips/blog/udp-client-and-server-in-go/#receiving-from-a-udp-connection-in-a-server
If you're going to work with UDP sockets in #golang be aware of this article (2018). Bunch of details, explanations and examples. Thank you twitter.com/cirowrc
https://ops.tips/blog/udp-client-and-server-in-go/#receiving-from-a-udp-connection-in-a-server
How we optimized our DNS server using #golang tools
https://medium.com/@arash.cordi/how-we-optimized-our-dns-server-using-go-tools-d753e1a5e709
(from @count0_digest)
https://medium.com/@arash.cordi/how-we-optimized-our-dns-server-using-go-tools-d753e1a5e709
(from @count0_digest)
From today series of #golang proposals regarding changes in runtime, compiler and all this strange stuff will be posted here.
The first one in the series: Create an undefined internal calling convention (by Austin Clements) https://github.com/golang/proposal/blob/master/design/27539-internal-abi.md
The first one in the series: Create an undefined internal calling convention (by Austin Clements) https://github.com/golang/proposal/blob/master/design/27539-internal-abi.md
#golang performance tooling tip:
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
go tool pprof -base=https://old.prof https://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 https://www.wingtecher.com/themes/WingTecherResearch/assets/papers/ICSE20.pdf
Code https://github.com/wangcong15/escape-from-escape-analysis-of-golang
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 https://www.wingtecher.com/themes/WingTecherResearch/assets/papers/ICSE20.pdf
Code https://github.com/wangcong15/escape-from-escape-analysis-of-golang
Export data, the secret of #golang fast builds
by twitter.com/jayconrod https://jayconrod.com/posts/112/export-data--the-secret-of-go-s-fast-builds
by twitter.com/jayconrod https://jayconrod.com/posts/112/export-data--the-secret-of-go-s-fast-builds
Wanna know how signals are handled by #golang runtime? Check this one by twitter.com/blanchonvincent
https://medium.com/a-journey-with-go/go-gsignal-master-of-signals-329f7ff39391
https://medium.com/a-journey-with-go/go-gsignal-master-of-signals-329f7ff39391
Understand unsafe in #golang
https://www.pixelstech.net/article/1584241521-Understand-unsafe-in-GoLang
https://www.pixelstech.net/article/1584241521-Understand-unsafe-in-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:)
https://github.com/cristaloleg/awesome-go-perf
Feel free to submit more!
(and sorry for a long break:)
Old one, but still a good one.
How #golang map are implemented? by twitter.com/davecheney
https://dave.cheney.net/2018/05/29/how-the-go-runtime-implements-maps-efficiently-without-generics
How #golang map are implemented? by twitter.com/davecheney
https://dave.cheney.net/2018/05/29/how-the-go-runtime-implements-maps-efficiently-without-generics
What is a goroutine? And what is their size? by twitter.com/tpaschalis_ #golang
https://tpaschalis.github.io/goroutines-size/
https://tpaschalis.github.io/goroutines-size/
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)
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
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!
https://github.com/felixge/fgprof by twitter.com/felixge
And it's literally under 100 lines! Amazing!
Building a high performance #golang JSON parser by twitter.com/davecheney
https://dave.cheney.net/high-performance-json.html
https://dave.cheney.net/high-performance-json.html
A Tale of Breadth-First Search by twitter.com/egonelbre at twitter.com/gopherconeu #golang
https://youtu.be/ulSlF2Phecg?list=PLtoVuM73AmsKnUvoFizEmvWo0BbegkSIG
https://youtu.be/ulSlF2Phecg?list=PLtoVuM73AmsKnUvoFizEmvWo0BbegkSIG
Proposal: Register-based #golang calling convention
https://go.googlesource.com/proposal/+/refs/changes/78/248178/1/design/40724-register-calling.md
https://go.googlesource.com/proposal/+/refs/changes/78/248178/1/design/40724-register-calling.md
Short note on #golang alloc size classes by twitter.com/offbymany
https://commaok.xyz/post/discovering-size-classes/
https://commaok.xyz/post/discovering-size-classes/