8 comments

[ 123 ms ] story [ 1257 ms ] thread
OP here. This is my attempt to document this profiler in Go based on my own research. As far as I can tell there is not much information about it out there.

Happy to answer any questions.

Thank you for taking the time to research and write this down. I've bookmarked this as helpful resource material for the next time I have to go digging through my profiles.
Thanks! Credit should also go to my employer Datadog. They allowed me to spend some time on this and make it available to the public!
Hey OP, just wanted to say thank you for putting this together! You have some amazing references in that readme, I particularly love the link to the go routine scheduler. You've also done such a wonderful job with explaining the why and how around some of the complex material.

Just really wanted to say thanks! This is an incredible resource

Thank you for the kind words! This is great motivation to continue writing about this stuff : )
Funny I have the same problem now figure out Mine! HA!
I'm continually impressed by what Go offers in the way of profiling and performance observability baked into the language. I know tools to do benchmarking and profiling exist for other languages, but the fact that a lot of that data is "in the box" for Go is incredibly convenient, to the point where any API I develop has a flag to enable serving pprof data.
Indeed, D has coverage, profiling, and unittests (unittest {}) built directly into the language and it massively eases using these concepts and encourages their use casually.