Java Academy · पाठ

JDK Mission Control से विश्लेषण

JFR recordings पढ़ें

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

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

JMC क्या है?

JDK मिशन कंट्रोल (JMC) JFR रिकॉर्डिंग का विश्लेषण करने वाला ग्राफ़िकल उपकरण है।

यह .jfr फ़ाइल खोलकर कच्ची घटनाओं को ऐसे दृश्यों में बदल देता है, जिनमें आसानी से खोज की जा सकती है: सबसे अधिक समय लेने वाली विधियाँ, कचरा संग्रहण का व्यवहार, लॉक पर प्रतिस्पर्धा, आवंटन और बहुत कुछ। इसमें स्वचालित विश्लेषण पृष्ठ भी है, जो संभावित समस्याओं को चिह्नित करता है।

JMC प्राप्त करना

JMC एक स्वतंत्र रूप से डाउनलोड किया जाने वाला उपकरण है (JDK 8 के बाद इसे JDK से अलग कर दिया गया था)।

इसे अडॉप्टियम या ओरेकल के JMC निर्माणों से प्राप्त करें, शुरू करें और अपनी .jfr फ़ाइल को फ़ाइल > फ़ाइल खोलें से खोलें। किसी एजेंट या अपने अनुप्रयोग को फिर से शुरू करने की आवश्यकता नहीं है — आप पहले से रिकॉर्ड की गई रिकॉर्डिंग का विश्लेषण कर सकते हैं।

स्वचालित विश्लेषण पृष्ठ

JMC सबसे पहले स्वचालित विश्लेषण दिखाता है: यह आपके रिकॉर्डिंग का मूल्यांकन करने वाली अनुमानों की एक सूची है।

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

विधि-प्रोफ़ाइल दृश्य

विधि-प्रोफ़ाइल पृष्ठ निष्पादन के नमूनों को एक कॉल-वृक्ष में एकत्र करता है।

जिन विधियों का स्वयं का समय सबसे अधिक होता है, वे आपके CPU के प्रमुख सक्रिय हिस्से हैं। क्या धीमा है और उसे कौन बुलाता है, यह समझने के लिए आप ऊपर-से-नीचे (आह्वानकर्ता से आह्वानित विधि तक) और नीचे-से-ऊपर (पहले धीमी विधि) दृश्यों के बीच बदल सकते हैं।

ज्वाला-आलेख

JMC स्टैक नमूनों को ज्वाला-आलेख के रूप में दिखाता है: चौड़ाई वहाँ बिताए गए समय के अनुपात में होती है।

आलेख के ऊपरी हिस्से के पास की चौड़ी समतल पट्टियाँ बताती हैं कि CPU वास्तव में अपने चक्र कहाँ खर्च करता है। यह दृश्य तुरंत स्पष्ट कर देता है कि कौन-सा आह्वान-पथ सबसे अधिक समय लेता है; क्रमबद्ध तालिका पढ़ने की तुलना में यह बहुत तेज़ है।

कचरा-संग्रहण दृश्य

कचरा-संग्रहण पृष्ठ विराम की अवधि, आवृत्ति और यह दिखाते हैं कि कौन-सा संग्राहक चला।

ऐसे लंबे या बार-बार होने वाले विराम खोजें, जो विलंबता को नुकसान पहुँचाते हैं। अधिक आवंटन दर आम तौर पर युवा पीढ़ी के बार-बार होने वाले कचरा-संग्रहण चक्रों से संबंधित होती है — समाधान संग्राहक बदलना नहीं, बल्कि वस्तुओं के अनावश्यक निर्माण को कम करना है।

आवंटन के प्रमुख स्थान

JMC का TLAB आवंटन दृश्य यह क्रम दिखाता है कि वस्तुएँ कहाँ बनाई जाती हैं।

किसी गर्म लूप में आवंटन करने वाली सटीक पंक्ति खोजने के लिए इसे कॉल-स्टैक के पते के साथ मिलाएँ। अक्सर छोटा-सा बदलाव — बफ़र का पुनः उपयोग करना या स्वचालित पैकिंग से बचना — कचरा-संग्रहण के दबाव को बहुत कम कर देता है।

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // Autoboxing: each add boxes an int into an Integer object
        List<Integer> boxed = new ArrayList<>();
        for (int i = 0; i < 5; i++) boxed.add(i);
        System.out.println("Boxed " + boxed.size() + " Integers");
        System.out.println("JMC allocation view would flag this hotspot");
    }
}

लॉक पर प्रतिस्पर्धा

लॉक उदाहरण और Java मॉनिटर दृश्य समन्वयन की प्रतीक्षा कर रहे थ्रेड दिखाते हैं।

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

थ्रेड और विलंबता दृश्य

थ्रेड पृष्ठ हर थ्रेड की समय-रेखा दिखाता है: CPU पर चल रहा, पार्क किया हुआ, IO की प्रतीक्षा कर रहा या अवरुद्ध।

यही तरीका है जिससे आप पुष्टि कर सकते हैं कि धीमापन CPU-आधारित है या IO-आधारित — बिल्कुल वही अंतर, जो प्रदर्शन-अड़चन वाले पाठ में बताया गया था। चौड़ी 'प्रतीक्षा' पट्टियों का अर्थ है कि आपकी समस्या IO या लॉक से संबंधित है, गणना से नहीं।

समस्या से समाधान तक

कार्यप्रवाह यह है: रिकॉर्डिंग खोलें, स्वचालित विश्लेषण पढ़ें, चिह्नित क्षेत्र में जाएँ (विधि-प्रोफ़ाइल, कचरा-संग्रहण या लॉक), ज्वाला-आलेख और थ्रेड दृश्य से पुष्टि करें, फिर एक परिकल्पना बनाएँ।

एक चीज़ बदलें, फिर से रिकॉर्ड करें और अपनी आधाररेखा से तुलना करें। JMC एक द्विआधारी फ़ाइल को कार्रवाई योग्य समझ में बदल देता है।

रिकॉर्डिंग की तुलना

यह सिद्ध करने के लिए कि कोई अनुकूलन काम कर गया, 'पहले' और 'बाद' की रिकॉर्डिंग की तुलना करें।

एक आधाररेखा JFR रिकॉर्ड करें, एक बदलाव लागू करें, दूसरी रिकॉर्डिंग लें और दोनों को JMC में खोलें। समान दृश्यों — विधि-प्रोफ़ाइल, कचरा-संग्रहण और आवंटन — को साथ-साथ देखें। वास्तविक सुधार स्वयं के समय में कमी, कम कचरा-संग्रहण विराम या कम आवंटन दर के रूप में दिखाई देगा। यदि कोई बदलाव नहीं आया, तो परिवर्तन वापस कर दें।

त्वरित जाँच

JMC के विधि-प्रोफ़ाइल और ज्वाला-आलेख दृश्यों में, किसी विधि का स्वयं का समय (या ऊपर की ओर चौड़ी समतल पट्टी) क्या दर्शाता है?

पुनरावलोकन

JMC JFR रिकॉर्डिंग पढ़कर उन्हें कार्रवाई योग्य बनाता है:

  • स्वचालित विश्लेषण शुरुआत में ही संभावित समस्याओं को चिह्नित करता है।
  • विधि-प्रोफ़ाइल और ज्वाला-आलेख स्वयं के समय के माध्यम से CPU के प्रमुख सक्रिय हिस्से दिखाते हैं।
  • कचरा-संग्रहण और आवंटन दृश्य स्मृति में बार-बार होने वाले आवंटन को उजागर करते हैं।
  • लॉक और थ्रेड दृश्य CPU-आधारित तथा IO या लॉक-आधारित समस्याओं में अंतर करते हैं।
  • अंदर तक जाँच करें, परिकल्पना बनाएँ, एक चीज़ ठीक करें, फिर से रिकॉर्ड करें और तुलना करें।
शुरुआत निःशुल्क

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

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

पाठ्यक्रम
104
पाठ
374

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

क्या “JDK Mission Control से विश्लेषण” पाठ निःशुल्क है?

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

“JDK Mission Control से विश्लेषण” में मैं क्या सीखूँगा?

JFR recordings पढ़ें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Java Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Java Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

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

“JDK Mission Control से विश्लेषण” पाठ पूरा करने में कितना समय लगता है?

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

क्या मैं इस Java Academy पाठ में कोड लिख और चला सकता हूँ?

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

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

  1. Bottlenecks पहचानना
  2. Java Flight Recorder
  3. JDK Mission Control से विश्लेषण
  4. सामान्य JVM Tuning Flags
← Java Academy पर वापस जाएँ