執行時間與量測

Julia 中級

Anthony Markham

Quantitative Developer

初版函式定義

  • 雖然問題常有多種解法,但通常存在「最佳」解。
  • 記憶體佔用大、執行時間長,會讓使用者與開發者都受挫。
  • 迴圈常導致執行較久、效率較差。
function my_function()
  x = Vector{Char}()
  for i in "Anthony"
    push!(x, i)
  end
  println(x)
end
['A', 'n', 't', 'h', 'o', 'n', 'y']
Julia 中級

基礎 @time 巨集

  • 我們用巨集來量測函式時間。

優點:

  • Julia 基礎套件自帶
  • 呼叫簡單易用
  • 輸出易於解讀

缺點:

  • 彈性有限
  • 只量一次時間
  • 第一次呼叫含編譯開銷
  • 對我們的函式呼叫巨集
@time my_function()
@time my_function()
  • 回傳值

0.278266 seconds (110.66 k allocations: 6.343 MiB, 99.79% compilation time)

0.000493 seconds (100 allocations: 3.281 KiB)

Julia 中級

BenchmarkTools - @benchmark

為何用 @benchmark 而非 @time

  • 最彈性的選擇,可調多種參數,如 samples 數量。
  • 提供深入的執行統計(範圍、中位數、平均)。
@benchmark my_function

Julia 中級

一起來練習吧!

Julia 中級

Preparing Video For Download...