2011-03-05 9 views
8

संक्षेप में ट्यूटोरियल पढ़ना और JVisualVM के साथ खेलना, मैं इसे मैन्युअल रूप से लंबे समय से चलने वाले सर्वर या स्विंग एप्लिकेशन से जोड़ सकता हूं, लेकिन मैं इसे दूसरे प्रोग्राम में चलाने वाले छोटे कार्यक्रमों के लिए भी उपयोग करना चाहता हूं।मैं एक अल्पकालिक कार्यक्रम में स्वचालित रूप से JVisualVM को कैसे संलग्न करूं?

मुझे लगता है कि मैं कंसोल पर अपना प्रोग्राम ब्लॉक कर सकता हूं, JVisualVM संलग्न कर सकता हूं, और फिर प्रोग्राम को अपना असली काम करने के लिए एक कुंजी दबा सकता हूं। क्या कम क्लोडी कामकाज है?

(यह मुख्य रूप से मेरी जिज्ञासा के लिए है, और एक पॉलिश जीयूआई का उपयोग करना अच्छा होगा जैसे -Xprof या HPROF के बजाय JVisualVM)।

+1

संभावित डुप्लिकेट [विज़ुअलवीएम के साथ प्रोफाइल एप्लिकेशन स्टार्टअप कैसे करें] (http://stackoverflow.com/questions/4434860/how-to-profile-plplication-startup-with-visualvm) –

उत्तर

3

आप ग्रहण का उपयोग कर रहे हैं, तो आप अपनी प्रक्रिया

-Dcom.sun.management.jmxremote.port=<fixed_port_number> 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 

को डिबग मोड में विकल्प "मुख्य में बंद करो" और तर्क के रूप में निम्न पंक्तियां जोड़ें उपयोग कर सकते हैं एक बार जब यह तो डिबग मोड और ब्लॉक में शुरू होता है निर्दिष्ट पोर्ट नंबर का उपयोग कर प्रक्रिया से कनेक्ट करने के लिए jvisualvm संलग्न करें।

2

अपनी डीबग सेटिंग्स में निलंबन = वाई जोड़ें। यह आपके प्रोग्राम को तब तक रोक देगा जब तक डीबगर/प्रोफाइलर संलग्न नहीं होता है।

+0

कुछ प्रश्न (http: // stackoverflow.com/questions/7096121/profile-entire-java-program-execution-in-visualvm) इंगित करता है कि निलंबन विकल्प काम नहीं करता है – Kilokahn

संबंधित मुद्दे