Julia 1.0

Profiling




julia

Profiling

[email protected] मैक्रो

@profile

@profile <expression> आवधिक बैकट्रैक लेते समय आपकी अभिव्यक्ति चलाता है। इन्हें बैकट्रैक्स के आंतरिक बफर से जोड़ा जाता है।

source

Profile में विधियों का निर्यात नहीं किया जाता है और इन्हें Profile Profile.print() रूप में कहा जाता है।

Profile.clear समारोह समारोह

clear()

आंतरिक बफर से किसी भी मौजूदा backtraces साफ़ करें।

source

Profile.print फंक्शन

print([io::IO = stdout,] [data::Vector]; kwargs...)

io को डिफ़ॉल्ट रूप से प्रिंट करता है (डिफ़ॉल्ट रूप से, stdout )। यदि आप data वेक्टर की आपूर्ति नहीं करते हैं, तो संचित बैकट्रैक्स के आंतरिक बफर का उपयोग किया जाएगा।

कीवर्ड तर्क किसी का भी संयोजन हो सकता है:

  • format - निर्धारित करता है कि बैकट्रैक्स को (डिफ़ॉल्ट :tree ) या बिना ( :flat ) इंडेंटेशन के साथ मुद्रित किया जाता है जो पेड़ की संरचना को दर्शाता है।

  • C - यदि true , सी और फोरट्रान कोड से बैकट्रैक्स दिखाए जाते हैं (आम तौर पर उन्हें बाहर रखा जाता है)।

  • combine - यदि true (डिफ़ॉल्ट) है, तो निर्देश बिंदु विलय किए जाते हैं जो कोड की एक ही पंक्ति के अनुरूप होते हैं।

  • maxdepth - :tree फॉर्मेट में maxdepth तुलना में गहराई अधिक होती है।

  • sortedby - :flat प्रारूप में आदेश को नियंत्रित करता है। :filefuncline (डिफ़ॉल्ट) स्रोत लाइन द्वारा सॉर्ट करता है, जबकि :count एकत्र किए गए नमूनों की संख्या के क्रम में :count

  • noisefloor - सीमा फ्रेम जो noisefloor शोर मंजिल से अधिक है (केवल प्रारूप पर लागू होता है :tree )। इसके लिए प्रयास करने के लिए सुझाया गया मान 2.0 है (डिफ़ॉल्ट 0 है)। यह पैरामीटर उन नमूनों को छिपाता है जिनके लिए n <= noisefloor * √N , जहां n इस रेखा पर नमूनों की संख्या है, और N कैली के लिए नमूनों की संख्या है।

  • mincount - प्रिंटआउट को केवल उन पंक्तियों तक mincount कम से कम mincount घटनाएं होती हैं।

source
print([io::IO = stdout,] data::Vector, lidict::LineInfoDict; kwargs...)

io लिए प्रोफाइल की रूपरेखा तैयार करता है। इस संस्करण का उपयोग retrieve करने के लिए पिछले कॉल द्वारा निर्यात किए गए परिणामों की जांच करने के लिए किया जाता है। Backtraces के वेक्टर data और लाइन की जानकारी का एक शब्दकोश lidict की आपूर्ति।

मान्य कीवर्ड तर्क की व्याख्या के लिए Profile.print([io], data) देखें।

source

Profile.init फ़ंक्शन

init(; n::Integer, delay::Float64)

बैकट्रैक्स (सेकंड में मापा गया), और संग्रहीत किए जाने वाले अनुदेश बिंदुओं की संख्या n के बीच delay कॉन्फ़िगर करें। प्रत्येक निर्देश सूचक कोड की एक पंक्ति से मेल खाता है; आम तौर पर अनुदेश बिंदुओं की एक लंबी सूची से मिलकर बनता है। इस फ़ंक्शन को बिना किसी तर्क के कॉल करके डिफ़ॉल्ट सेटिंग्स प्राप्त की जा सकती हैं, और प्रत्येक को स्वतंत्र रूप से कीवर्ड या ऑर्डर (n, delay) का उपयोग करके सेट किया जा सकता है।

source

Profile.fetch

fetch() -> data

Backtraces के आंतरिक बफर का संदर्भ देता है। ध्यान दें कि बाद के ऑपरेशन, जैसे clear , data को प्रभावित कर सकते हैं जब तक कि आप पहली बार प्रतिलिपि नहीं बनाते हैं। ध्यान दें कि data के मानों का वर्तमान सत्र में केवल इस मशीन पर अर्थ है, क्योंकि यह JIT- संकलन में उपयोग किए गए सटीक मेमोरी पतों पर निर्भर करता है। यह फ़ंक्शन मुख्य रूप से आंतरिक उपयोग के लिए है; अधिकांश उपयोगकर्ताओं के लिए एक बेहतर विकल्प हो सकता है।

source

Profile.retrieve

retrieve() -> data, lidict

"एक्सपोर्ट्स" का परिणाम एक पोर्टेबल प्रारूप में होता है, जो सभी बैकट्रैक्स ( data ) के सेट को लौटाता है और एक शब्दकोश जो data में LineInfo (सत्र विशिष्ट) निर्देश LineInfo को LineInfo करता है जो फ़ाइल नाम, फ़ंक्शन नाम और लाइन नंबर को संग्रहीत करता है। यह फ़ंक्शन आपको भविष्य के विश्लेषण के लिए रूपरेखा परिणामों को बचाने की अनुमति देता है।

source

Profile.callers फ़ंक्शन

callers(funcname, [data, lidict], [filename=<filename>], [linerange=<start:stop>]) -> Vector{Tuple{count, lineinfo}}

पिछले प्रोफाइलिंग रन को देखते हुए, निर्धारित करें कि किसी विशेष फ़ंक्शन को कौन कहते हैं। फ़ाइल नाम की आपूर्ति करना (और वैकल्पिक रूप से, पंक्ति संख्याओं की संख्या, जिस पर फ़ंक्शन को परिभाषित किया गया है) आपको एक अतिभारित विधि को अस्वीकार करने की अनुमति देता है। लौटाया गया मूल्य एक वेक्टर है जिसमें कॉल की संख्या और कॉल करने वाले के बारे में जानकारी की एक संख्या होती है। एक वैकल्पिक रूप से retrieve से retrieve बैकट्रेस data आपूर्ति कर सकता है; अन्यथा, वर्तमान आंतरिक प्रोफ़ाइल बफर का उपयोग किया जाता है।

source

Profile.clear_malloc_data फ़ंक्शन

clear_malloc_data()

जब --track-allocation साथ जूलिया चलाने पर किसी भी संग्रहीत मेमोरी आवंटन डेटा को साफ करता है। उस कमांड को निष्पादित करें जिसे आप परीक्षण करना चाहते हैं (जेआईटी-संकलन के लिए बाध्य करने के लिए), फिर clear_malloc_data कॉल करें। फिर अपने आदेशों को फिर से निष्पादित करें, जूलिया को छोड़ दें, और परिणामी *.mem फ़ाइलों की जांच करें।

source