/ / Visualvm प्रोफाइलर में CPU समय को समझना - जावा, ग्रहण, visualvm

Visualvm प्रोफाइलर में सीपीयू समय को समझना - जावा, ग्रहण, visualvm

मैंने अपने आवेदन को प्रोफाइल करने के लिए विजुअलवम का उपयोग करना शुरू कर दिया है जिसे मैंने ग्रहण में लॉन्च किया है। फिर मैं विजुअलव्यू लॉन्च करता हूं जो प्रारंभ में विश्वसनीय परिणाम देता है।

यहां छवि विवरण दर्ज करें

कुछ समय बाद मॉनीटर में दो प्रक्रियाएं दिखाई देती हैं जो बड़ी मात्रा में उपभोग करती हैं।

यहां छवि विवरण दर्ज करें

मैंने जानबूझकर इन्हें बुलाया नहीं है। एक समय के बाद वे गायब हो जाते हैं। क्या वे प्रोफाइलिंग प्रक्रिया का एक आर्टफैक्ट हैं और क्या मुझे चिंता करने की ज़रूरत है?

मेरे दिनचर्या में बहुत कम प्रोफ़ाइल में दिखाई देते हैं, मुख्य रूप से वे पुस्तकालय जिन्हें वे कहते हैं। क्या यह दिखाने का एक तरीका है कि कौन से दिनचर्या सबसे अधिक इस्तेमाल किए जाने वाले लोगों को बुलाते हैं?

उत्तर:

उत्तर № 1 के लिए 7

यदि आप सीपीयू नमूनाकरण शुरू करना बेहतर हैयह नहीं पता कि कोड का कौन सा हिस्सा धीमा है। एक बार जब आप बेहतर जानते हैं (नमूना परिणामों के आधार पर) क्या हो रहा है, तो आप अपने आवेदन का केवल एक हिस्सा प्रोफाइल कर सकते हैं, जो धीमा है। आपको प्रोफाइलिंग जड़ों और वाद्ययंत्र फ़िल्टर को सेट करने की आवश्यकता है और एकत्रित परिणामों के स्नैपशॉट को लेना न भूलें। देख VisualVM के साथ प्रोफाइलिंग, भाग 1 तथा VisualVM के साथ प्रोफाइलिंग, भाग 2 प्रोफाइलिंग और प्रोफाइलिंग जड़ों और वाद्ययंत्र फ़िल्टर को सेट करने के तरीके के बारे में अधिक जानकारी प्राप्त करने के लिए।


जवाब के लिए 3 № 2

VisualVM जावा का उपयोग करने के लिए जावा का उपयोग करता है। इसका मतलब है कि आप कुछ कलाकृतियों को देखेंगे जो आरएमआई कॉल से संबंधित हैं। आप उन्हें अनदेखा कर सकते हैं।

मैं YourKit का उपयोग करता हूं जो यह नहीं करता है, लेकिन यह मुफ़्त नहीं है;)


उत्तर № 3 के लिए 1

VisualVM द्वारा बुलाए जाने वाले सभी तरीकों को ट्रैक करेगाजावा प्रोग्राम यह निगरानी कर रहा है, इसलिए या तो आपका प्रोग्राम या इसके पुस्तकालयों में से एक उन तरीकों को बुला रहा है। विजुअलVM भी इससे जुड़ रहा है, इसलिए कुछ छोटी कलाकृतियों हो सकती हैं।

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