Примечание: Я думаю, это просто пример, но синтаксис C::...
недействителен синтаксис Julia, лучше, если вы предоставите простые, но функциональные примеры.
Вы можете предварять каждое выражение, что вы заинтересованы в синхронизации с @time
макро аннотации, если вы хотите, независимые тайминги:
function main()
a = function1()
b = function2(...)
c = function3(...)
@time A = function4(...)
@time B = function5(...)
@time C = function6(...)
end
main()
или:
function main()
a = function1()
b = function2(...)
c = function3(...)
@time begin
A = function4(...)
B = function5(...)
C = function6(...)
end
end
main()
Это похоже на @Gomiero ответьте, просто чтобы вовремя несколько функций с макросом @time
, вам нужно ввести новый блок и все, что там есть.
проверка также еще незарегистрированной пакета Benchmarks
, то есть:
julia> Pkg.add("https://github.com/johnmyleswhite/Benchmarks.jl.git")
julia> using Benchmarks
julia> function test()
x = 0
for i in 1:1000_000_000
x += 1
end
return x
end
test (generic function with 1 method)
julia> @time test() # JIT warmup!
0.003669 seconds (1.71 k allocations: 90.799 KB)
1000000000
julia> @time test()
0.000002 seconds (5 allocations: 176 bytes)
1000000000
julia> @benchmark test()
================ Benchmark Results ========================
Time per evaluation: 6.03 ns [5.92 ns, 6.13 ns]
Proportion of time in GC: 0.00% [0.00%, 0.00%]
Memory allocated: 0.00 bytes
Number of allocations: 0 allocations
Number of samples: 6301
Number of evaluations: 811601
R² of OLS model: 0.951
Time spent benchmarking: 2.96 s
Если вы хотите, чтобы время несколько выражений использовать begin
агрегатирования.