В Python удобный способ оценки производительности кода - timeit . В Julia у нас есть @time, но это имеет недостаток, заключающийся в том, что фрагмент кода запускается только один раз, что означает, что вам нужно выполнить его несколько раз, чтобы получить хорошее представление о производительности кода. Есть ли лучший способ временного кода в Julia, более похожий на Python timeit?

12
Yly 18 Фев 2018 в 04:46

1 ответ

Лучший ответ

В пакете BenchmarkTools есть @benchmark и @btime, у которых есть статистический способ определения количества запусков.

julia> A = rand(100,100);
julia> B = rand(100,100);

julia> using BenchmarkTools

julia> @benchmark A*B
BenchmarkTools.Trial:
  memory estimate:  78.20 KiB
  allocs estimate:  2
  --------------
  minimum time:     48.302 μs (0.00% GC)
  median time:      72.015 μs (0.00% GC)
  mean time:        74.314 μs (6.52% GC)
  maximum time:     3.232 ms (95.17% GC)
  --------------
  samples:          10000
  evals/sample:     1

julia> @btime A*B;
  49.180 μs (2 allocations: 78.20 KiB)
19
Gnimuc 18 Фев 2018 в 05:15