मैं ग्रहण VisualVM launcher का उपयोग करने का प्रयास कर रहा हूं। यह बहुत अच्छा लगता है, सिवाय इसके कि ऐसा लगता है कि विजुअलVM मेरे आवेदन की कोई प्रोफाइलिंग करने में बहुत देर हो चुकी है। प्रोफाइलर शुरू होने से पहले मेरा आवेदन निष्पादन समाप्त करता है; एक बार यह शुरू होने के बाद, एक त्रुटि विंडो पॉप अप हो जाती है, कह रही है: cannot open requested application
। इसके बाद यह VM चल रहा है Eclipse (लेबल "org.eclipse.equinox.launcher.Main")। मैं इसे अपने आवेदन की प्रतीक्षा करने और उचित प्रोफाइलिंग करने के लिए कैसे प्राप्त कर सकता हूं?विजुअलVM लॉन्चर त्रुटि
उत्तर
मुझे वह समस्या पता है। केवल गरीब आदमी का समाधान मैं हमेशा के साथ आया है:
- अपने स्रोत कोड में एक ब्रेकपाइंट सेट
- प्रोफाइलर
- चलो डिबग मोड
- में अपने कार्यक्रम के शुरू से कनेक्ट कार्यक्रम जारी
विज़ुअलVM को आपके वीएम में प्रोफाइलिंग एजेंट इंजेक्ट करने में थोड़ा समय लगता है और मुझे पूरा यकीन है कि यह केवल दूरस्थ प्रोफाइलिंग की अनुमति देता है।
एक विकल्प के रूप में आप YourKit का उपयोग कर सकते हैं, यह बहुत ही शुरुआत से आपके आवेदन को प्रोफाइल कर सकता है। इस तरह की रूपरेखा एजेंट वीएम स्टार्टअप पर इंजेक्ट किया जाता है:
java -agentpath:c:\yourkit\yjpagent.dll FooClass
मैं उत्सुक हूँ क्यों VisualVM इस विकल्प प्रदान नहीं करता है, इसकी तकनीकी रूप से संभव के बाद से। वैसे भी मुझे लगता है कि डीबग चाल ईक्लीप्स के भीतर से एक अच्छा समाधान है, जब तक कि आप कक्षा लोडिंग आदि में रुचि रखते हैं।
यह शायद बहुत देर हो चुकी है, लेकिन मुझे एक ही समस्या थी, और ब्रेकपॉइंट सेट करना और फिर शुरू करना डीबगिंग मोड बिल्कुल मदद नहीं करता था। अंततः मुझे पता चला कि VisualVM फ़ोल्डर में% अस्थायी डेटा को% TMP%/hsperfdata_ [username] में सहेजता है, मेरी विंडोज मशीन पर यह फ़ोल्डर उदाहरण के लिए सी: \ उपयोगकर्ता \ जैकब \ AppData \ Local \ Temp \ hsperfdata_Jacob था। यह पता चला कि प्रक्रिया में उस फ़ोल्डर तक पहुंचने के लिए पर्याप्त अनुमति नहीं थी, इसलिए मैंने इसकी अनुमतियों को आराम दिया और अब यह ठीक काम करता है। उम्मीद है कि यह किसी भी समस्या के लिए उपयोगी है!
विंडोज़ पर, एक्लिप्स को प्रशासक के रूप में चलाएं।
यह विंडोज 8 पर मेरे लिए बहुत अच्छा काम करता है। धन्यवाद एंड्रेस! –
आपका स्वागत है। – Andres
यह एक गूंगा समाधान है, लेकिन काम करता है। यहां यह जाता है:
अपने एप्लिकेशन में एक अनंत लूप रैपर जोड़ें, "जबकि (सत्य) {your_app}" कहें।
आपके कार्यक्रम लंबे समय तक चलने के साथ ही समय शोर भी समाप्त हो जाएगा।
- 1. विजुअलVM
- 2. विजुअलVM
- 3. विजुअलVM
- 4. विजुअलVM - कक्षा
- 5. विजुअलVM सॉकेट.read
- 6. प्रोफ़ाइल टॉमकैट एप्लिकेशन विजुअलVM
- 7. विजुअलVM और सेल्फ टाइम
- 8. उत्पादन में विजुअलVM?
- 9. विजुअलVM सीपीयू प्रदर्शन प्रोफाइलिंग
- 10. विजुअलVM और एसएसएच
- 11. विजुअलVM रिमोट कनेक्शन
- 12. एप्लिकेशन लॉन्चर
- 13. विजुअलVM में प्रोफाइल संपूर्ण जावा प्रोग्राम निष्पादन
- 14. ग्रहण एक एप्लिकेशन लॉन्चर
- 15. लॉन्चर कैसे बनाएं
- 16. जावा मूल लॉन्चर प्रदर्शन
- 17. "विंडोज़ सिस्टम। लॉन्चर" वर्डपैड
- 18. एंड्रॉइड लॉन्चर आइकन
- 19. लॉन्चर सक्रियता उपयोग
- 20. सामान्य सेटिंग लॉन्चर आइकन
- 21. लॉन्चर/होम स्क्रीन रिप्लेसमेंट
- 22. लॉन्चर आइकन डिजाइन
- 23. विजुअलVM के साथ समस्या- दूरस्थ होस्ट
- 24. विजुअलVM और ग्रहण की तुलना टीपीटीपी
- 25. विजुअलVM प्रोफाइलर मेरा आवेदन क्यों नहीं करेगा?
- 26. कस्टम एंड्रॉइड लॉन्चर को समझना
- 27. एक गतिशील लॉन्चर आइकन बनाएं
- 28. एंड्रॉइड लॉन्चर में होस्टिंग विजेट
- 29. एमवीसी 4 वेबएपीआई प्रक्रिया लॉन्चर
- 30. एंड्रॉइड लॉन्चर आइकन कैसे बनाएं
क्या आप बस थ्रेड.sleep() नहीं कर सकते थे, जबकि यह स्वयं काम कर रहा है? –
@RyanAmos यह भी संभव है, मैंने डीबग मोड के साथ चाल पर आने से पहले यह किया है। मैं इसे 'टाइमर स्लीप' के साथ एक साथ समय नहीं लेना चाहता था, या तो आपको 'नींद' पहनने तक इंतजार करना पड़ेगा या अटैचिंग में बहुत लंबा समय लगेगा। –
आपकीकिट बहुत महंगा है। सहायता के लिए धन्यवाद! –