एक्सिक्यूशन समय और माप

इंटरमीडिएट Julia

Anthony Markham

Quantitative Developer

प्रारंभिक फंक्शन परिभाषा

  • किसी समस्या के कई समाधान हो सकते हैं, पर अक्सर एक 'optimal' समाधान होता है
  • बड़ी मेमोरी खपत और लंबा एक्सिक्यूशन समय उपयोगकर्ताओं और डेवलपर्स, दोनों को निराश कर सकता है
  • लूप्स अक्सर लंबे एक्सिक्यूशन समय और अक्षमता का कारण बनते हैं
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

Base @time मैक्रो

  • हम फंक्शनों को time करने के लिए मैक्रो इस्तेमाल करते हैं.

फायदे:

  • Julia के base पैकेज का हिस्सा
  • सरल और कॉल करना आसान
  • आउटपुट समझना आसान

कमियाँ:

  • सीमित लचीलापन
  • फंक्शन को सिर्फ एक बार time करता है
  • पहली मैक्रो कॉल में compilation ओवरहेड
  • हमारे फंक्शन पर मैक्रो कॉल करें
@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

@time की बजाय @benchmark क्यों?

  • सबसे लचीला विकल्प, कई पैरामीटर्स जैसे samples की संख्या ट्यून कर सकते हैं।
  • runtime के विस्तृत आँकड़े (range, median, mean)।
@benchmark my_function

इंटरमीडिएट Julia

अभ्यास करते हैं!

इंटरमीडिएट Julia

Preparing Video For Download...