This is very useful and much appreciated. Thank you.
On Tuesday, April 5, 2016 at 3:42:45 PM UTC-4, Kristoffer Carlsson wrote: > > Hello everyone, > > I put up a new (unregistered) small package for timing different sections > of code. It works similar to @time in Base but you also give the code > section being timed a label. We can then track the total time and number of > calls that are made to code sections with that label and pretty print it in > the end. This feature existed in a C++ library I used to use (deal.II) and > I missed it in Julia. > > Here is a small example. > > using TimerOutputs > > const time_tracker = TimerOutput(); > > @timeit time_tracker "sleeping" sleep(1) > > @timeit time_tracker "loop" for i in 1:10 > rand() > sleep(0.1) > end > > v = 0.0 > for i in 1:5 > v += @timeit time_tracker "in a loop" begin > sleep(0.1) > rand() > end > end > > print(time_tracker) > +---------------------------------------------+------------+------------+ > | Total wallclock time elapsed since start | 3.155 s | | > | | | | > | Section | no. calls | wall time | % of total | > +---------------------------------------------+------------+------------+ > | loop | 1 | 1.012 s | 32 % | > | sleeping | 1 | 1.002 s | 32 % | > | in a loop | 5 | 505.779 ms | 16 % | > +---------------------------------------------+------------+------------+ > > Feel free to comment on the package name, macro name, format of the output > etc. > > The URL is: https://github.com/KristofferC/TimerOutputs.jl > > Best regards, Kristoffer >
