是否可以像在Matlab中一样在Julia中嵌套tic()和toc()?如果不是这样的方式呢?

use*_*004 0 time matlab timer julia

是否可以在Julia中调用嵌套的tic()和toc()?问题是我无法将我选择的计时器名称发送到toc()函数.

在Matlab中有这样的东西(我引用Matlab的帮助)

`

REPS = 1000;   minTime = Inf;   nsum = 10;
tic;  % TIC, pair 1

for i=1:REPS
   tStart = tic;  % TIC, pair 2  
   total = 0;
   for j=1:nsum 
      total = total + besselj(j,REPS);
   end

   tElapsed = toc(tStart);  % TOC, pair 2  
   minTime = min(tElapsed, minTime);
end
averageTime = toc/REPS;  % TOC, pair 1  `
Run Code Online (Sandbox Code Playgroud)

And*_*ica 5

看起来你可以,让我知道这不是你的意思嵌套tictoc.

tic()
sleep(1)
tic()
sleep(1)
toc() # elapsed time: 1 second
sleep(1)
toc() #elapsed time: 3 seconds
Run Code Online (Sandbox Code Playgroud)

此外,如果你想在Julia中计算一些东西,使用@time宏可以更容易,它也可以跟踪内存分配.

@time (sleep(1); @time sleep(1);)
# elapsed time: 1 second, 672 bytes allocated
# elapsed time: 2.13 seconds, 6 MB allocated
Run Code Online (Sandbox Code Playgroud)

不幸的是,它似乎没有使用返回值的预定义函数tic.您可以使用该time_ns功能编写自己的.

function toc(t0)
  t1 = time_ns()
  t = (t1 - t0) / 1e9
  println("elapsed time: ", t, " seconds")
  return t
end
Run Code Online (Sandbox Code Playgroud)