Stream: t-compiler/wg-rls-2.0

Topic: rowan-next performance quirk


Christopher Durham (Apr 12 2020 at 02:28, on Zulip):

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).

Christopher Durham (Apr 13 2020 at 00:46, on Zulip):

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.

matklad (Apr 13 2020 at 00:56, on Zulip):

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.

nagisa (Apr 13 2020 at 00:56, on Zulip):

There is a way to get visual studio to just open a plain executable, I could do it a fair number of times already

nagisa (Apr 13 2020 at 00:57, on Zulip):

IIRC I do it fairly roudaboutly – I think by opening the exe as a project?

nagisa (Apr 13 2020 at 00:57, on Zulip):

something like that.

Last update: Sep 30 2020 at 15:45UTC