इंटेलीज आइडिया - प्रोफाइलिंग
Profiler आपके एप्लिकेशन के बारे में जानकारी देता है जैसे कि इसका CPU, मेमोरी और हीप उपयोग। यह एप्लिकेशन थ्रेड्स के बारे में विवरण भी देता है। यह अध्याय जावा एप्लिकेशन प्रोफाइलिंग के लिए विजुअलवीएम टूल के उपयोग पर चर्चा करता है। यह सीपीयू और हीप जैसी संस्थाओं को प्रोफाइल कर सकता है।
यह अनुशंसा की जाती है कि इस ट्यूटोरियल के पाठक एप्लिकेशन प्रोफाइलर अवधारणाओं से परिचित हों।
परिचय
VisualVM एक विजुअल टूल है जो JDK टूल को एकीकृत करता है और आपको शक्तिशाली प्रोफाइलिंग क्षमता प्रदान करता है। यह आपको ढेर डेटा बनाने और विश्लेषण करने, मेमोरी लीक को ट्रैक करने, कचरा कलेक्टर की निगरानी करने और मेमोरी और सीपीयू प्रोफाइलिंग करने की अनुमति देता है।
लाभ
JVM पर चलने वाले स्थानीय और दूरस्थ जावा अनुप्रयोगों के लिए विज़ुअल इंटरफ़ेस।
एप्लिकेशन की मेमोरी उपयोग और एप्लिकेशन के रनटाइम व्यवहार की निगरानी।
एप्लिकेशन थ्रेड्स की निगरानी
विभिन्न अनुप्रयोगों के लिए स्मृति आवंटन का विश्लेषण।
थ्रेड डंप - गतिरोध और दौड़ की स्थिति के मामले में बहुत आसान है।
ढेर डंप - ढेर स्मृति आवंटन का विश्लेषण करने में बहुत आसान है।
विन्यास
इस खंड में, हम VisualVM को कॉन्फ़िगर करने के लिए किए गए चरणों को सीखेंगे। कदम इस प्रकार हैं -
इसे यहाँ से डाउनलोड करें ।
ज़िप फ़ाइल निकालें।
Etc / visualvm.conf फ़ाइल पर नेविगेट करें और इस फ़ाइल में निम्न पंक्ति जोड़ें -
visualvm_jdkhome=<path of JDK>
यदि आपका JDK में स्थापित है C:\Program Files\Java\jdk-9.0.1 निर्देशिका तो यह इस तरह दिखना चाहिए -
visualvm_jdkhome="C:\Program Files\Java\jdk-9.0.1"
निगरानी आवेदन
आइए अब देखते हैं कि आवेदन की निगरानी कैसे करें। इसे समझने के लिए निम्नलिखित चरणों पर विचार करें -
- Visualvm.exe फ़ाइल पर डबल-क्लिक करें।
- बाएं फलक से एप्लिकेशन का चयन करें।
- मॉनिटर टैब चुनें।

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

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

मेमोरी प्रोफाइलिंग
मेमोरी प्रोफाइलिंग के लिए, निम्न स्क्रीनशॉट में दिखाए गए अनुसार मेमोरी बटन पर क्लिक करें -

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

मेमोरी प्रोफाइलिंग
CPU प्रोफाइलिंग करने के लिए नीचे दिए गए स्क्रीनशॉट में दिखाए अनुसार CPU बटन पर क्लिक करें -
