-
Notifications
You must be signed in to change notification settings - Fork 187
Add a running index to set-operations benchmarks. #622
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
Conversation
|
How many benchmarks have the same name? If we can rename just a few instead of adding a whole numbering mechanism, I would prefer that. |
|
All of set-operations-* appear (and are run) twice. |
|
OK. I'll accept it. But I absolutely can't stand the way this module was and is written. It's absurdly difficult to see what the heck it's doing with all those hacked up list operations. Do you think you understand what's going on well enough to do it more sensibly? |
Thats the reason why I made it 1-n over all benchmarks instead of having -run1 -run2 etc.
Most of it, I guess I can take a second look and see if I can make it saner. |
|
When the benchmark harness is too complicated to even number the benchmarks the way we'd prefer, it's time to fix the harness. |
|
Much better already. What is a data variant? What is a |
|
Do we want to add |
|
I removed duplicating of (some) benchmarks which the old version did.
They are actually not duplicate (sigh).
So _nn is not the same as _nn_swap. n only identifies the size of the data not the actual data. |
It's the nn/nt/tn/... identifiers. But I should replace that by size_str I guess given the above. Benchmark list now looks like this: |
|
Bleh. OK, could you maybe add a bit more documentation so people can understand what the notation means? Then I'll merge. |
|
As constructed I think the benchmarks could also be bogus when it comes to GC overhead. Consider this ridiculous example of running benchmarks with a tiny nursery: Run only two benchmarks so little live data: All benchmarks so lots of live data: The second example is over twice as slow with these settings! The difference is less pronounced without the nursery settingings but still very much exists. It's not a huge issue if you always run all the benchmarks. But if not it's pretty bad. |
I've added a blurp about the data sizes. The GC issue is a different one (and not something I want to tackle atm). |
|
Please kill the |
* Benchmark names are now unique. * Benchmarks are no longer run twice with identical data. * Benchmark names constructed by swapping arguments are indicated by a _swap postfix. * Refactored the code to make it easier to understand. This fixes haskell#621.
done |
|
Thanks! |
This avoids issues caused by different benchmarks with the same name.
This fixes #621.