OlivierLi
Joined 14 years ago
Joined 14 years ago
Issuing individual truncates of 1B files can be just as much of a CPU problem then an IO one for example.
Then you navigate to the CPU tracks find the thread(s) that were running instead of the one you care about and directly inspect their stacks. Sometimes almost nothing is running. Maybe contention is not on even on the CPU.
So the “parsing styles was slow” conclusion you would get from only looking at histograms turns into “parsing styles was slow because I couldn’t get my fonts and that was slow because IndexDB was hogging the hard drive on another process”
Edit: I should mention the user provided trace events are very important here. You get flow arrows really underlining task posting and IPC response as well as user interactions. Entry/Exit style uprobes on function are great but I found won’t get you all the way there on a large application.
It just shows contention in a way that so hard to see otherwise.
If this tool packages some of that in an easier to use package it’s going to be a great tool for some.
I highly recommend rtags (even if it's not stricly LSP)
It said something along the lines of "remember $USER five runs of Chrome is not enough for high quality benchmarks! What you're doing is called a _trial run_".
To have a useful continuation to the conversation I had to remind it that I was the one that wrote the documentation it was quoting back at me.
It's not actually an intelligent being so I didn't get angry at it but it was a piss poor experience.