Honest question here - does this document start at a point where you've already done some analysis, and decided that memory is your bottleneck, and memory profiling and optimisation is the way you want to go? Or is a generally accepted best practice to first do this anyways, and then move on to e.g. CPU profiling, regardless of being say CPU-bound? I've only skimmed the document, intending to read it later, but didn't see an answer to this. Where can I find more info?
(I'm asking as someone who has done a fair bit of "performance work" but strictly at a higher level - by selecting more appropriate algorithms for the nature and size of data, minimising time spent waiting for network calls, etc, so it's rare that I have to dive very deeply in to "proper" performance work. But, I would like to learn more.)