If somebody wants an interesting benchmark to dissect, I've got one I don't quite understand in sorbus (rowan-next): https://github.com/CAD97/sorbus/pull/1#issuecomment-612549153
TL;DR is that a change to the way I'm iterating over green nodes' children array is producing a 9% regression in a benchmark of iterating one (large) node's children, and a 33% improvement in walking the entire tree. (At small scale, it seems flat iteration takes a much larger hit, but walking keeps the same improvement.)
My gut tells me the walk benchmark is "correct" here and the flat iteration benchmark is just measuring the wrong thing, but I've run out of my knowledge on how to track down this weird behavior. More details and the full criterion report are in the linked issue, I'm happy to answer questions here or on the issue (as well as run further experiments).
This is so annoying because I cannot for the life of it get any profiler working (on Windows). I can _debug_ Rust code in vscode, but I can't get Visual Studio to understand a Rust project enough to launch (or debug/profile) it.
Intel VTune is a word associated with windows and profiling in my brain.
Quick googling shows that at least one person made it work five years ago.
There is a way to get visual studio to just open a plain executable, I could do it a fair number of times already
IIRC I do it fairly roudaboutly – I think by opening the exe as a project?
something like that.