-
Notifications
You must be signed in to change notification settings - Fork 86
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
Add a variant of runBenchmark which also takes iteration range. #254
Comments
I agree that we should offer more control over how this works for the benefit of power users. See also #210/#218, where users have requested the ability to reduce the number of iterations of very long-lived benchmarks. My only request is that we should very carefully document the pitfalls of changing the defaults that If you submit a PR, I can review it more carefully. From a conceptual level, however, I'd support this direction of travel. |
Yes, I wouldn't change the current defaults, i.e. the already existing functions behavior. |
Refactor runBenchmark to use it. Resolves haskell#254
Refactor runBenchmark to use it. Resolves haskell#254
Refactor runBenchmark to use it. Resolves haskell#254
Refactor runBenchmark to use it. Resolves haskell#254
Refactor runBenchmark to use it. Resolves haskell#254
Currently there is:
I'd like to have a variant where we can specify the optional lower and upper bounds for iteration count (run at least 10 times, no need to run over 100 times).
Lower bound would be great to ensure more statistical significance. Upper bound would allow to avoid running individual benchmark for too long.
I think that then we'd need both lower and upper bound for time as well (current is actually more like soft upper bound, but as there are no end criteria it's also a lower bound).
I think it would best to put these four options into a record, to avoid double-blindness.
In case when no bounds is specified, we could either fail or use some default time bound.
EDIT: summary:
EDIT2;
tasty-bench
does analysis, and decides end criteria on the fly. That's another option and can be used to implement the above; but i think the above is still conseptually simpler.i offer to write a patch.
The text was updated successfully, but these errors were encountered: