Electron डेस्कटॉप ऐप विकास · पाठ

प्रदर्शन प्रोफ़ाइलिंग

अपने Electron ऐप के प्रदर्शन की प्रोफ़ाइल बनाने के लिए अंतर्निहित टूल और बाहरी उपयोगिताओं का उपयोग करें तथा बाधाओं और सुधार के क्षेत्रों की पहचान करें।

पाठ 3, कुल 4 में से11 चरण

प्रदर्शन प्रोफ़ाइलिंग, CoddyKit पर Electron डेस्कटॉप ऐप विकास का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Electron डेस्कटॉप ऐप विकास सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Electron डेस्कटॉप ऐप विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

प्रदर्शन प्रोफ़ाइलिंग क्या है

प्रदर्शन प्रोफ़ाइलिंग आपके Electron अनुप्रयोग की स्वास्थ्य-जाँच करने जैसा है! यह आपके अनुप्रयोग के संसाधन उपयोग (CPU, मेमोरी, नेटवर्क) का विश्लेषण करने की प्रक्रिया है, जिससे पता चलता है कि उसकी गति कहाँ धीमी हो रही है।

डेस्कटॉप अनुप्रयोगों के लिए सहज और त्वरित प्रतिक्रिया वाला उपयोगकर्ता अनुभव महत्वपूर्ण है। प्रोफ़ाइलिंग से हमें रुकावटों का सटीक पता लगाने और अपने अनुप्रयोगों को अधिक तेज़ महसूस कराने में सहायता मिलती है।

सामान्य रुकावटों का सटीक पता लगाना

Electron अनुप्रयोग वेब तकनीक को Node.js के साथ जोड़ते हैं, इसलिए धीमापन कई स्थानों से आ सकता है:

  • उपयोगकर्ता इंटरफ़ेस का रेंडर होना: जटिल एनिमेशन या DOM में भारी बदलाव।
  • भारी JavaScript: लंबे समय तक चलने वाली स्क्रिप्ट, जो उपयोगकर्ता इंटरफ़ेस को रोकती हैं।
  • IPC का अतिरिक्त भार: मुख्य और रेंडरर प्रक्रियाओं के बीच बहुत अधिक संचार।
  • मेमोरी लीक: मुक्त न किए गए ऑब्जेक्ट, जो लगातार अधिक RAM का उपयोग करते हैं।
  • डिस्क I/O: मुख्य प्रक्रिया में फ़ाइलों को धीरे पढ़ना या लिखना।

रेंडरर प्रक्रिया के लिए DevTools

चूँकि Electron की रेंडरर प्रक्रिया मूलतः Chromium का वेब पृष्ठ है, इसलिए आप परिचित Chromium डेवलपर टूल का उपयोग कर सकते हैं! ये आपके उपयोगकर्ता इंटरफ़ेस की त्रुटि-निवारण और प्रोफ़ाइलिंग के लिए आवश्यक हैं।

किसी विंडो के लिए DevTools खोलने हेतु मुख्य प्रक्रिया में myWindow.webContents.openDevTools(); का उपयोग करें।

रेंडरर के CPU उपयोग की प्रोफ़ाइलिंग

DevTools खोलें (Ctrl+Shift+I या Cmd+Option+I) और Performance टैब पर जाएँ। रिकॉर्ड बटन पर क्लिक करें, अपने यूज़र इंटरफ़ेस के साथ काम करें, फिर रिकॉर्डिंग रोक दें।

फ्लेम चार्ट देखें और उन लंबे कार्यों की पहचान करें जो मुख्य थ्रेड को रोकते हैं। CPU पर अधिक भार डालने वाली रेंडरर स्क्रिप्ट का एक उदाहरण यहाँ है:

/*
This code runs in the renderer process (e.g., in index.html).
It's a snippet, not a full standalone program.
*/

function performHeavyTask() {
  console.log('Starting heavy renderer task...');
  let sum = 0;
  for (let i = 0; i < 50000000; i++) { // 50 million iterations
    sum += Math.sqrt(i);
  }
  console.log('Heavy renderer task finished:', sum);
  return sum;
}

// Example usage: call this function on a button click
// document.getElementById('myButton').addEventListener('click', performHeavyTask);

रेंडरर की मेमोरी का प्रोफ़ाइल बनाना

मेमोरी लीक खोजने के लिए DevTools का Memory टैब बेहद महत्वपूर्ण है। मेमोरी में वर्तमान में मौजूद ऑब्जेक्ट देखने के लिए आप "Heap snapshots" ले सकते हैं, या समय के साथ मेमोरी के उपयोग पर नज़र रखने के लिए "Allocation timeline" रिकॉर्ड कर सकते हैं।

एक सामान्य लीक तब होता है जब अलग किए गए DOM एलिमेंट के संदर्भ सुरक्षित रह जाते हैं। मेमोरी आवंटित करने वाला एक सरल उदाहरण यहाँ है:

/*
This code runs in the renderer process (e.g., in index.html).
It's a snippet, not a full standalone program.
*/

let memoryHog = [];

function allocateMoreMemory() {
  console.log('Allocating more memory...');
  for (let i = 0; i < 10000; i++) {
    memoryHog.push({
      id: i,
      data: new Array(1000).fill('some long string to consume memory')
    });
  }
  console.log('Current memoryHog size:', memoryHog.length);
}

// Example usage: call this function repeatedly
// document.getElementById('allocateBtn').addEventListener('click', allocateMoreMemory);

मुख्य प्रक्रिया के लिए Node.js इंस्पेक्टर

मुख्य प्रक्रिया Node.js के वातावरण में चलती है। इसका प्रोफ़ाइल बनाने के लिए हम Node.js Inspector का उपयोग करते हैं, जो Chrome DevTools के साथ संगत है!

आप अपनी Electron ऐप को --inspect फ़्लैग के साथ शुरू करते हैं, फिर अपने Chrome ब्राउज़र में chrome://inspect के ज़रिए DevTools को दिए गए URL (आमतौर पर chrome-devtools://...) से कनेक्ट करते हैं।

मुख्य प्रक्रिया के CPU/मेमोरी का प्रोफ़ाइल बनाना

DevTools को अपनी मुख्य प्रक्रिया से कनेक्ट करने के बाद, आपको विशेष रूप से Node.js के लिए DevTools का एक इंस्टेंस दिखाई देगा। CPU के फ्लेम ग्राफ़ के लिए Profiler टैब और हीप स्नैपशॉट के लिए Memory टैब का उपयोग करें, ठीक वैसे ही जैसे रेंडरर के लिए करते हैं।

इस उदाहरण को Node.js स्क्रिप्ट के रूप में चलाएँ और इसके CPU उपयोग का प्रोफ़ाइल बनाने के लिए DevTools से कनेक्ट करने का प्रयास करें:

// main_process_profiling_example.js
// To run: node --inspect main_process_profiling_example.js
// Then open chrome://inspect in Chrome and click "Open dedicated DevTools for Node"

function calculateHeavySum() {
  console.log('Starting heavy main process task...');
  let sum = 0;
  for (let i = 0; i < 200000000; i++) { // 200 million iterations
    sum += Math.sin(i) * Math.cos(i);
  }
  console.log('Heavy main process task finished:', sum);
  return sum;
}

console.log("Main process example started.");
// Simulate a recurring task or an event that triggers heavy work
setTimeout(() => {
  const result = calculateHeavySum();
  console.log("Result of heavy calculation:", result);
}, 1000);

// Keep the process alive for a bit for inspection
setInterval(() => {
  // console.log("Main process still running...");
}, 5000);

// This is a standalone Node.js program entry point.

प्रोफ़ाइल डेटा को समझना

प्रोफ़ाइल मिल जाने के बाद असली काम शुरू होता है! इन चीज़ों पर ध्यान दें:

  • फ्लेम चार्ट: समय के साथ कॉल स्टैक को दिखाते हैं। चौड़ी पट्टियों का अर्थ है कि अधिक समय लगा। "हॉट पाथ" खोजें यानी ऐसे फ़ंक्शन जिन्हें बार-बार कॉल किया जाता है या जिन्हें पूरा होने में अधिक समय लगता है।
  • कॉल ट्री/नीचे से ऊपर: फ़ंक्शन को उनके कुल समय के आधार पर दिखाता है और सबसे अधिक संसाधन लेने वाले ऑपरेशन की पहचान करने में मदद करता है।
  • मेमोरी स्नैपशॉट: लीक का पता लगाने के लिए ऑब्जेक्ट की संख्या, आकार और उनके द्वारा रोकी गई मेमोरी देखें।

DevTools से आगे: बाहरी टूल

सिस्टम-स्तर पर अधिक गहन प्रदर्शन विश्लेषण के लिए, आपको DevTools के बाहर के टूल की आवश्यकता हो सकती है:

  • Linux: CPU और कर्नेल-स्तर के प्रोफ़ाइल के लिए perf।
  • macOS: व्यापक सिस्टम प्रदर्शन विश्लेषण के लिए Instruments।
  • Windows: विस्तृत सिस्टम गतिविधि के लिए Windows Performance Recorder (WPR)।

ये उन्नत टूल हैं, लेकिन प्रदर्शन से जुड़ी कठिन समस्याओं के लिए इनके बारे में जानना उपयोगी है।

सही प्रोफ़ाइल टूल चुनना

आपको संदेह है कि आपकी Electron ऐप का यूज़र इंटरफ़ेस कभी-कभी रुक जाता है और समय के साथ मेमोरी का उपयोग धीरे-धीरे बढ़ता रहता है। इन समस्याओं की जाँच के लिए कौन-से दो टूल या तरीके सबसे प्रभावी होंगे?

दोहराव: प्रदर्शन का प्रोफ़ाइल बनाना

बहुत अच्छा! आपने Electron में प्रदर्शन का प्रोफ़ाइल बनाने का तरीका सीख लिया है:

  • रेंडरर (UI/JS) और मुख्य (Node.js) दोनों प्रक्रियाओं के लिए Chromium DevTools का उपयोग करें।
  • CPU उपयोग और UI की प्रतिक्रिया-क्षमता के लिए Performance टैब पर ध्यान दें।
  • मेमोरी लीक और अत्यधिक आवंटन की पहचान करने के लिए Memory टैब का उपयोग करें।
  • फ्लेम चार्ट और मेमोरी स्नैपशॉट को समझना सीखें।

तेज़ और विश्वसनीय Electron ऐप बनाने के लिए प्रोफ़ाइल बनाना महत्वपूर्ण है!

शुरुआत निःशुल्क

एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
47

अक्सर पूछे जाने वाले प्रश्न

क्या “प्रदर्शन प्रोफ़ाइलिंग” पाठ निःशुल्क है?

हाँ—“प्रदर्शन प्रोफ़ाइलिंग” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Electron डेस्कटॉप ऐप विकास पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Electron डेस्कटॉप ऐप विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“प्रदर्शन प्रोफ़ाइलिंग” में मैं क्या सीखूँगा?

अपने Electron ऐप के प्रदर्शन की प्रोफ़ाइल बनाने के लिए अंतर्निहित टूल और बाहरी उपयोगिताओं का उपयोग करें तथा बाधाओं और सुधार के क्षेत्रों की पहचान करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Electron डेस्कटॉप ऐप विकास का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Electron डेस्कटॉप ऐप विकास शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Electron डेस्कटॉप ऐप विकास शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“प्रदर्शन प्रोफ़ाइलिंग” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Electron डेस्कटॉप ऐप विकास पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Electron डेस्कटॉप ऐप विकास पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. स्टार्ट-अप समय का अनुकूलन
  2. मेमोरी प्रबंधन तकनीकें
  3. प्रदर्शन प्रोफ़ाइलिंग
  4. बंडल और डिस्क आकार कम करना
← Electron डेस्कटॉप ऐप विकास पर वापस जाएँ