Replies: 3 comments 7 replies
-
/cc @vzarytovskii |
Beta Was this translation helpful? Give feedback.
-
There's no infrastructure per se yet. We do have some benchmarks in https://github.com/dotnet/fsharp/tree/main/tests/benchmarks, but they are more of a manual ones we use when we need. We do want to have some tests in https://github.com/dotnet/performance |
Beta Was this translation helpful? Give feedback.
-
I'm in the same boat as @En3Tho . However, I felt like I'm on my own:
I think that having the infrastructure that collects performance metrics for a set of predefined inputs would go a long way:
If having this sort of infrastructure on all PRs is problematic due to lack of resources/the fact people work on their own forks, then this should suffice:
Some basic metrics that should be both easy to gather and useful:
Example benchmarks:
|
Beta Was this translation helpful? Give feedback.
-
I'm going to have some free time soon and I would like to try contributing some more to F# (my last contributions were quite small, but well..). And the space I'm interested in is compiler perf. Mainly because:
So we basically either have to start cutting our solution in more specific parts or try to contribute to compiler perf infrastructure. Personally I'd like to do the latter (but maybe former is a thing to consider anyway).
Is there a document describing a long term plan/vision of making such a thing an important part of every release (making sure there are perf improvements/controlled regressions e.t.c). If there is no such document, maybe there is a somewhat clearish goal of how to build this up or someone already tried to do this kind of thing and the work can be continued from there?
So, I would like to know what's the state of compiler perf infrastructure?
Do compiler stages have clear boundaries and can they be separately timed? I guess the scariest perf wise thing is type checking but which concrete part of it? So basically I would like to time stages and substages to know what's making me wait actually.
How can I start and what are my first steps here?
Beta Was this translation helpful? Give feedback.
All reactions