-
Notifications
You must be signed in to change notification settings - Fork 102
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
[RFC] Display histogram when showing trial #180
Conversation
As a reference https://tratt.net/laurie/blog/entries/minimum_times_tend_to_mislead_when_benchmarking.html gives some motivating examples. |
This could be really fun to have! One main question might be: how much does adding the dependency on UnicodePlots increase the time for |
It looks like the time for the UnicodePlots dependency could be significant relative to the current loading time
but it also seems like it might not be hard just write a unicode histogram function from scratch, e.g.
|
Would it be better to just to have a front-and-center example in the docs of https://julialang.slack.com/archives/C681P8ABG/p1602495982012600?thread_ts=1602495855.012500&cid=C681P8ABG (screenshotted here for posterity) |
at @vchuravy's request, from Julia Slack (ref https://julialang.slack.com/archives/C681P8ABG/p1603023939039300) |
Like @brenhinkeller I was also concerned with how this affects loading time. Loading julia> @time using BenchmarkTools # julia 1.6
0.085774 seconds (117.50 k allocations: 9.685 MiB, 48.95% compilation time)
julia> @time using UnicodePlots , BenchmarkTools # julia 1.6, in a new session
0.224512 seconds (288.01 k allocations: 22.532 MiB, 19.69% compilation time)
julia> @time using BenchmarkTools # julia 1.5
0.188177 seconds (234.56 k allocations: 14.028 MiB, 3.97% gc time)
julia> @time using UnicodePlots , BenchmarkTools # julia 1.5
0.695784 seconds (761.20 k allocations: 45.126 MiB, 1.34% gc time) |
Maybe Requires.jl could be used, or waiting for Pkg to implement "conditional dependencies" ? |
I think we can go with a custom implementation of a histogram, I was just to lazy to do that. |
I made a quick package to provide this: https://github.com/ericphanson/BenchmarkPlots.jl (no piracy, just re-using the |
from JuliaCI/BenchmarkTools.jl#180 (comment) Co-authored-by: C. Brenhin Keller <cbkeller@dartmouth.edu>
from JuliaCI/BenchmarkTools.jl#180 (comment) Co-authored-by: C. Brenhin Keller <cbkeller@dartmouth.edu>
from JuliaCI/BenchmarkTools.jl#180 (comment) Co-authored-by: C. Brenhin Keller <cbkeller@dartmouth.edu>
For anyone subscribed to this, you'll likely find #217 of interest. |
Closed in favour of #217 |
I think we can all agree that there is no good choice for summary statistics, given the fact that benchmarks are often multi-modal.
minimum
can be a decent choice if one is focused on performance tuning a specific implementation, but if a user is comparing two different implementations it can be often misleading.This PR adds a histogram to the output when showing a Trial, hopefully encouraging the user to think more deeply about comparing two results.