Как избежать toc() печати времени, прошедшего в Julia?

Это может быть действительно глупый вопрос, но я все равно продолжу. Я пытаюсь использовать Julia tic() и toc() внутри цикла, чтобы выяснить некоторые проблемы с синхронизацией. Ниже приведен пример фиктивного примера:

elapsedTime = zeros(3);

for i = 1:3
    tic();
    pause(i)
    ElapsedTime[i] = toc();
end 

Целью является сохранение прошедших временных интервалов в массиве ElapsedTime. Проблема в том, что toc() кажется a) печатать прошедшее время на экране и b) хранить его по желанию.

Есть ли какой-то простой трюк, чтобы избежать a), т.е. что toc() выводит результат? Это не огромная проблема, просто раздражает, если количество итераций велико.

Любая помощь будет принята с благодарностью!

Ответ 1

существует другая версия toc(), вызываемая toq(), которая не печатает вещь и возвращает прошедшее время.

Ответ 2

Вам понадобится макрос @elapsed.

elapsedTime = zeros(3);

for i = 1:3
  elapsedTime[i] = @elapsed sleep(i)
end

Ответ 3

Я предполагаю, что вы могли бы взять время вручную и сохранить его в массиве >

elapsedTime = zeros(3);

for i = 1:3
    t1 = time_ns()
    rand(10000000)
    t2 = time_ns()
    elapsedTime[i] = (t2 - t1)/1.0e9
end