Waktu eksekusi dan pengukuran

Julia Tingkat Menengah

Anthony Markham

Quantitative Developer

Definisi fungsi awal

  • Meski masalah punya banyak solusi, sering ada solusi yang paling optimal
  • Penggunaan memori besar dan waktu eksekusi lama membuat pengguna dan pengembang frustrasi
  • Loop sering menyebabkan eksekusi lebih lama dan tidak efisien
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 Tingkat Menengah

Makro @time (Base)

  • Kita memakai makro untuk mengukur waktu fungsi.

Keunggulan:

  • Bagian dari paket dasar Julia
  • Sederhana dan mudah dipanggil
  • Keluaran mudah diinterpretasi

Keterbatasan:

  • Fleksibilitas terbatas
  • Hanya mengukur sekali
  • Panggilan pertama ada overhead kompilasi
  • Panggil makro pada fungsi kita
@time my_function()
@time my_function()
  • Nilai keluaran

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

0.000493 seconds (100 allocations: 3.281 KiB)

Julia Tingkat Menengah

BenchmarkTools - @benchmark

Mengapa pakai @benchmark dibanding @time?

  • Paling fleksibel, banyak parameter yang bisa diatur, seperti jumlah samples.
  • Statistik runtime mendalam (rentang, median, mean).
@benchmark my_function

Julia Tingkat Menengah

Ayo berlatih!

Julia Tingkat Menengah

Preparing Video For Download...