Обычно рекомендуется использовать BenchmarkTools.jl для сравнительного анализа фрагмента кода.
Параллельно с макросом @time
в Base
Julia, BenchmarkTools
экспортирует обычно лучший макрос @btime
, который, помимо прочего, избегает измерения времени компиляции и выполняет более точный статистический анализ. (подробности см. в документации к пакету)
Вы можете использовать его так же, как и макрос @time
, например @btime rand(2,2)
Чтобы сравнить блок кода, такой как ваш «основной код», вы можете (и должны) поместить этот фрагмент кода в функцию или в блок begin ... end
. Например,
@btime begin
# my code goes here
end
Обратите внимание, что независимо от бенчмаркинга, в любом случае рекомендуется помещать в функции критический код производительности, как объяснено в Советах по производительности в документации Джулии.
Введя @btime
, конечно, если время выполнения вашего кода доминирует над временем компиляции, как, вероятно, должно быть в случае тестирования всего кода («основного кода»), часто, тем не менее, хорошо использовать @time
, Следует поучительно прочитать эту недавнюю дискуссионную ветку , где обсуждались части того, как правильно использовать @time
.