-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tool idea: optimization simulator #39
Comments
A talk at last week's Strangeloop titled "Performance Matters" covered coz-profiler that's kinda magical—it finds and predicts what sort of optimizations would be useful, and how much of a throughput/latency increase it would provide, depending on mode the user runs coz in. It works on C and C++, but speaking to the author and looking at |
Once libstd switches to parking-lot for mutexes, coz won't work correctly anymore, as it expects pthread mutexes. |
@bjorn3: oh, that's a bummer, but that's good to know. I'm guessing that requires changing coz to support parking-lot's mutexes? |
A way Solaris has worked around this in the past to support both pthread and non-pthread mutexes was to introduce static tracepoints called "mutex probes". Tools such as note: I've never used Solaris; all I know is anecdotal from: "Systems Performance: Enterprise and the Cloud" (Gregg, 2013) |
It would be useful to have a tool that can simulate the impact of a hypothetical optimization to a function/query. For example, let's say someone has an idea that allows speeding up
typeck_tables_of
by 10% but it's kind of complicated and they don't know if they should put in the effort of implementing it. With all the caching going on in the compiler it is non-trivial to predict the effect of such an optimization on total compilation time.However, given a concrete profile, it should be possible to compute an approximation of the same profile with the hypothetical speed-up applied. For the single-threaded case it should be pretty accurate even.
The text was updated successfully, but these errors were encountered: