Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Stopwatch function in Julia

Tags:

julia

In MATLAB, there are a pair of functions tic and toc which can be used to start and stop a stopwatch timer. An example taken from link:

tic
A = rand(12000, 4400);
B = rand(12000, 4400);
toc
C = A'.*B';
toc

I am aware that there is a macro @time in Julia that has similar functionality.

julia> @time [sin(cos(i)) for i in 1:100000];
elapsed time: 0.00721026 seconds (800048 bytes allocated)

Is there a set of similar functions in Julia? The @time macro works well for timing statements that can be written in one or two lines. For longer portions of code, I would prefer to use tic-toc functions.

What I tried

When I googled "julia stopwatch", I found one useful link and four unrelated links.

  1. Introducing Julia/Metaprogramming - Wikibooks, open ... Meta-programming is when you write Julia code to process and modify Julia code. ... The @time macro inserts a "start the stopwatch" command at the beginning ...
  2. Our Invisible Stopwatch promo - YouTube Video for julia stopwatch
  3. Julia Larson on Twitter: "This #Mac OSX timer/stopwatch is ...
  4. Timing episodes of The French Chef with a stopwatch
  5. julia griffith | Oiselle Running Apparel for Women

I don't know why I hadn't thought of just trying tic() and toc().

like image 500
I Like to Code Avatar asked Dec 14 '22 13:12

I Like to Code


2 Answers

tic() and toc() have been deprecated as of https://github.com/JuliaLang/julia/commit/1b023388f49e13e7a42a899c12602d0fd5d60b0a

You can use @elapsed and @time for longer chunks by wrapping them in an environment, like so:

t = @elapsed begin
    ...
end

There is also TickTock.jl, which has reimplemented tic() and toc() and tick() and tock().

using TickTock
tick()
# Started timer at 2017-12-13T22:30:59.632
tock()
# 55.052638936 ms: 55 seconds, 52 milliseconds
like image 189
Johan Larsson Avatar answered Dec 20 '22 22:12

Johan Larsson


From a search of the Julia documentation

tic()

Set a timer to be read by the next call to toc() or toq(). The macro call @time expr can also be used to time evaluation.

like image 41
IainDunning Avatar answered Dec 20 '22 23:12

IainDunning