BenchmarkTools.jl icon indicating copy to clipboard operation
BenchmarkTools.jl copied to clipboard

A benchmarking framework for the Julia language

Results 102 BenchmarkTools.jl issues
Sort by recently updated
recently updated
newest added

Here's a minimal example (thanks to mbauman for helping identify the issue). I've run into other issues with `@benchmark` breaking on other example functions that I no longer have handy,...

bug

The following works fine ``` julia A = Array(SymTridiagonal(fill(2, 5), ones(5))) b = @benchmarkable Base.LinAlg.chol!(x) setup=(x = Hermitian(copy($A), :U)) warmup(b) run(b) ``` but injecting `tune!` between `warmup` and `run` as...

As a benchmark suite becomes large the likelihood of accidentally overwriting a previous group increases. It would be good if this would warn or error since it is very likely...

enhancement

On Slack today, some timings were posted: ```jl julia> @btime sum(a) > 0 26.323 μs (1 allocation: 16 bytes) false julia> @btime any(a .> 0) 116.147 μs (5 allocations: 16.64...

enhancement

It is not clear to me whether the output is based on the wall clock or CPU time. Could we add this to the documentation?

documentation

```julia julia> [@elapsed n for n in 1:1] 1-element Array{Float64,1}: 5.1e-8 julia> [@belapsed n for n in 1:1] ERROR: UndefVarError: n not defined Stacktrace: [1] ##core#667() at /Users/andreasnoack/.julia/v0.6/BenchmarkTools/src/execution.jl:316 [2] ##sample#668(::BenchmarkTools.Parameters)...

documentation

`showall` is gone: https://github.com/JuliaLang/julia/pull/22847 How to best look at results now? Note that `repr` and `print` show even less info.

enhancement

The current default timeout of five seconds is annoyingly large for simple benchmarking (if I want to benchmark four different versions of a simple loop, I have to wait 20s)....

enhancement

Add simple stopwatch, see below for basic suggested implementation: ``` mutable struct StopWatch t1::Float64 t2::Float64 StopWatch() = new(NaN, NaN) end function start!(sw::StopWatch)::Nothing sw.t1 = time() Nothing() end function stop!(sw::StopWatch)::Nothing sw.t2...

Using something like https://github.com/bicycle1885/CodecZlib.jl the output files can be compressed to ~5% of the current size. It is a pretty lightweight dependency, so perhaps worth thinking about.

enhancement