Q100225: प्रदर्शन संबंधी समस्याओं को अलग करने के लिए अपनी Nuke स्क्रिप्ट की प्रोफाइलिंग करना

सारांश

यह आलेख दो वैकल्पिक तरीकों की व्याख्या करता है जिनका उपयोग स्क्रिप्ट की धीमी गति के कारण की पहचान करने का प्रयास करते समय Nuke नोड्स के प्रदर्शन का परीक्षण करने के लिए किया जा सकता है।


अधिक जानकारी

यह पता लगाना कठिन हो सकता है कि आपकी Nuke स्क्रिप्ट का कौन सा भाग आपके प्लेबैक/रेंडर समय को धीमा कर रहा है।

इस प्रक्रिया को सुविधाजनक बनाने के लिए, Nuke आपकी स्क्रिप्ट में नोड्स के प्रदर्शन को प्रोफाइल करने के लिए दो वैकल्पिक तरीके प्रदान करता है, प्रदर्शन टाइमर और प्रोफाइल नोड का उपयोग करना।
दोनों विधियाँ विश्लेषण प्रदान करेंगी जिनका उपयोग विशेष रूप से धीमे नोड्स को अलग करने और आपके वर्कफ़्लो को अनुकूलित करने में किया जा सकता है। प्रोफ़ाइलिंग के समय, नोड्स को हरे से लाल रंग में कोडित किया जाएगा, जहाँ लाल रंग एक धीमा नोड है।
आप नीचे दिए गए उदाहरण से देख सकते हैं कि डीफोकस एक धीमा नोड है, जबकि मर्ज कोई काम नहीं कर रहा है।

प्रदर्शन टाइमर का उपयोग करना

प्रदर्शन टाइमर मोड आपको प्रत्येक नोड के विश्लेषण और नोड पर विभिन्न मैट्रिक्स देखने की अनुमति देगा।
प्रदर्शन टाइमर सक्षम करके Nuke लॉन्च करना

Nuke को परफॉरमेंस टाइमर सक्षम करके चलाने के लिए, आप Nuke लॉन्च करते समय -P फ़्लैग का उपयोग कर सकते हैं। ऐसा करने के निर्देश प्रत्येक ऑपरेटिंग सिस्टम के लिए नीचे दिए गए हैं:
विंडोज़ :
कमांड प्रॉम्प्ट विंडो खोलें और निम्न कमांड चलाएँ:

"C:\Program Files\Nuke16.0v4\Nuke16.0.exe" -P

मैक ओएस:
टर्मिनल विंडो खोलें और निम्न कमांड चलाएँ:

/Applications/ Nuke 16.0v4/ Nuke 16.0v4.app/Contents/MacOS/ Nuke 16.0 -P
लिनक्स:
टर्मिनल खोलें और कमांड चलाएँ:

/usr/local/ Nuke 16.0v4/ Nuke 16.0 -P

नोट: ये निर्देश Nuke डिफ़ॉल्ट स्थान पर इंस्टॉल करने पर आधारित हैं। यदि ऐसा नहीं है, तो कमांड्स को आपके कस्टम इंस्टॉलेशन स्थान से चलाने के लिए तदनुसार संशोधित करना होगा।
जब Nuke प्रदर्शन टाइमर सक्षम करके लॉन्च किया जाता है, तो आप Nuke UI में प्रदर्शन मेनू में टाइमर को रीसेट, शुरू और बंद कर सकते हैं, जैसा कि नीचे दिखाया गया है:
पायथन का उपयोग करके प्रदर्शन टाइमर सक्षम करना
किसी भी Nuke सत्र में, आप स्क्रिप्ट संपादक में निम्नलिखित कमांड चलाकर प्रदर्शन टाइमर को शुरू या बंद कर सकते हैं:
nuke .startPerformanceTimers()
nuke .stopPerformanceTimers()
इन आदेशों के बारे में अधिक जानकारी नीचे दिए गए हमारे दस्तावेज़ में पाई जा सकती है:
स्टार्टपरफॉर्मेंसटाइमर्स : nuke /developers/latest/pythondevguide/_autosummary/ nuke .startPerformanceTimers.html
स्टॉपपरफॉर्मेंसटाइमर्स : nuke /developers/latest/pythondevguide/_autosummary/ nuke .stopPerformanceTimers.html
प्रदर्शन टाइमर का उपयोग करते समय रिपोर्ट की गई जानकारी
प्रदर्शन टाइमर सक्षम होने पर, प्रत्येक नोड निम्नलिखित जानकारी रिपोर्ट करेगा:
सीपीयू - सीपीयू द्वारा प्रोसेसिंग कोड को निष्पादित करने में बिताया गया समय, माइक्रोसेकंड में, सभी सीपीयू थ्रेड्स पर एकत्रित।
उदाहरण के लिए, बहु-थ्रेडेड प्रोसेसिंग में यह आमतौर पर वॉल टाइम से बहुत ज़्यादा होता है। अगर प्रति थ्रेड औसत CPU समय (CPU को इस्तेमाल किए गए थ्रेड्स की संख्या से विभाजित करके) वॉल टाइम से बहुत कम है, तो इससे पता चलता है कि CPU थ्रेड्स ने कोड निष्पादित न करने और शायद लॉक होने का इंतज़ार करने में बहुत समय बिताया है, जो किसी प्रदर्शन समस्या का संकेत हो सकता है।

नोट : macOS और Windows पर, CPU समय वर्तमान में सटीक नहीं है। macOS पर, CPU मान हमेशा वॉल समय के समान होता है।

दीवार - दीवार पर लगी घड़ी से मापा गया समय - वह वास्तविक समय जो आपको प्रोसेसिंग पूरी होने तक इंतज़ार करना पड़ता है। दीवार पर लगा समय भी माइक्रोसेकंड में मापा जाता है।

ऑप्स - नोड में बुलाए गए ऑपरेटरों की संख्या। ऑपरेटर Nuke के निर्माण खंड हैं जो कुछ कार्य करते हैं। नोड्स में एक या अधिक ऑप्स हो सकते हैं।
उदाहरण के लिए, जब किसी नोड को किसी चीज़ का आकार बदलने की आवश्यकता होती है तो वह उसी कार्य को करने के लिए अपने स्वयं के कार्यान्वयन के बजाय ट्रांसफ़ॉर्म ऑप का उपयोग करेगा।

मेमोरी - नोड द्वारा उपयोग की जाने वाली सिस्टम मेमोरी की कुल मात्रा।
Nuke परफॉर्मेंस प्रोफाइलिंग मोड में लॉन्च करने पर, आप Nuke UI में परफॉर्मेंस मेनू में टाइमर को रीसेट, शुरू और बंद कर सकते हैं, जैसा कि नीचे दिखाया गया है:

प्रोफ़ाइल नोड

Nuke 11.1 में हमने प्रोफाइल नोड जोड़ा है, जो उपयोगकर्ताओं को उस बिंदु पर नोड ट्री के मेट्रिक्स की गणना करने की क्षमता देता है जहां प्रोफाइल नोड रखा गया है।
प्रोफाइल नोड के गुणों में, आप अपनी Nuke स्क्रिप्ट की प्रोफाइलिंग के लिए नियंत्रणों तक पहुंचने के लिए प्रोफाइल पैनल खोल सकते हैं:
Nuke स्क्रिप्ट को प्रोफाइल करने के लिए, प्रोफाइल नोड को स्क्रिप्ट के उस भाग से कनेक्ट करें जिसे आप प्रोफाइल करना चाहते हैं, चयनित फ्रेम रेंज और डेटा प्रकार दर्ज करें और फिर प्रोफाइल पर क्लिक करें।
एक बार डेटा एकत्रित हो जाने पर, प्रोफाइल पैनल प्रतिशत उपयोग के आधार पर एकत्रित डेटा को चार्ट में दिखाएगा, जैसा कि नीचे दिखाया गया है:
नोट: इस डेटा को फ़िल्टर करने के बारे में अधिक जानकारी के लिए, कृपया प्रोफ़ाइल डेटा फ़िल्टरिंग दस्तावेज़ देखें

तरीकों के बीच अंतर

जबकि प्रोफाइल नोड कुछ नई सुविधाएं जैसे चार्ट और अन्य GUI आधारित निदान प्रदान करता है, यह प्रदर्शन टाइमर द्वारा उपयोग किए जाने वाले टाइमर-आधारित विश्लेषण के बजाय प्रतिशत-आधारित विश्लेषण के आधार पर प्रदर्शन की गणना करता है।


अतिरिक्त जानकारी
दोनों विधियों के बारे में अधिक जानकारी क्रमशः प्रदर्शन प्रोफाइलिंग या प्रोफाइल नोड दस्तावेज़ में पाई जा सकती है।

    हम चाहते हैं कि खेद व्यक्त करते हैं

    कृपया हमें बताएँ कि