# TimerOutputComparisons.jl - plotting TimerOutput

**URL:** <https://discourse.julialang.org/t/timeroutputcomparisons-jl-plotting-timeroutput/137197>\
**Category:** Package Announcements\
**Created:** [May 19, 2026, 5:05pm UTC](https://discourse.julialang.org/t/timeroutputcomparisons-jl-plotting-timeroutput/137197 "2026-05-19T17:05:39Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![johnomotani](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnomotani/32/26753_2.png) [@johnomotani](https://discourse.julialang.org/u/johnomotani)\
**Post date:** [May 19, 2026, 5:05pm UTC](https://discourse.julialang.org/t/timeroutputcomparisons-jl-plotting-timeroutput/137197/1 "2026-05-19T17:05:39Z")

</div>

Sometimes it’s useful to visually compare a bunch of `TimerOutput` objects. In my case, this was for profiling code running on different numbers of cores, but maybe also for example comparing different versions of a code. I made a small package [TimerOutputComparisons.jl](https://github.com/johnomotani/TimerOutputComparisons.jl) to make this easier.

There is a function `save_timer(filename, to)` to save a TimerOutput `to` to a `.jld` file. After doing that for some runs on different numbers of cores, running

```julia
julia> using TimerOutputComparisons, TimerOutputs

julia> compare_timers(["timing-1-1.jld", "timing-2-2.jld", "timing-4-4.jld", "timing-8-8.jld", "timing-16-16.jld"]...; use_data=:time, legend=false, averages=true, root="Static condensation ldiv! 16641")

```

produces a plot like this, where I’ve disabled the legend because there are too many lines, but a GLMakie DataInspector gives a tooltip that shows which timer each line corresponds to:

 ![Screenshot from 2026-05-19 17-47-49](https://global.discourse-cdn.com/julialang/original/3X/0/1/01c1e9b1fae26ab0d4f607b4615dec01d2c954a3.png)

(I have some more work to do to optimise the performance scaling 😆 )

If anyone else would find this useful, I could register the package?

---

<div class="post-metadata">

**Author:** ![dmolina](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmolina/32/5246_2.png) [@dmolina](https://discourse.julialang.org/u/dmolina)\
**Post date:** [May 23, 2026, 1:45pm UTC](https://discourse.julialang.org/t/timeroutputcomparisons-jl-plotting-timeroutput/137197/2 "2026-05-23T13:45:27Z")

</div>

Yes, please. It could be considered small but it could be very useful and it has no sense to merge in the original package (it should not require a graphical library).

---

<div class="post-metadata">

**Author:** ![johnomotani](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnomotani/32/26753_2.png) [@johnomotani](https://discourse.julialang.org/u/johnomotani)\
**Post date:** [May 23, 2026, 3:27pm UTC](https://discourse.julialang.org/t/timeroutputcomparisons-jl-plotting-timeroutput/137197/3 "2026-05-23T15:27:51Z")

</div>

The package is now registered 🙂
