यह एक पूरा समाधान नहीं है, लेकिन एक में विकसित होने के लिए पर्याप्त हो सकता है। निश्चित रूप से एक बिंदु है जिस पर java
प्रक्रिया मौजूद है (और इस प्रकार pbind
द्वारा नियंत्रित किया जा सकता है) और जिस बिंदु पर यह प्रोसेसर जांच करने के लिए अभी तक कोड नहीं चला है। यदि आप अपने काम को लॉन्च करने तक एप्लिकेशन के लॉन्च को रोक सकते हैं, तो यह ठीक होना चाहिए (मान लीजिए कि पबिंद विचार सीपीयू-चेकिंग पॉइंट व्यू से काम करेगा)।
ऐसा करने का एक तरीका है जो निश्चित रूप से उचित स्थान पर JVM को रोकना चाहिए, रिमोट डीबगर्स के लिए सॉकेट अटैचमेंट और निलंबन मोड से शुरू करना है।
-Xdebug -Xrunjdwp: आप java
मंगलाचरण के लिए निम्न तर्क पार कर लेते हैं परिवहन = dt_socket, पता = 8000, को निलंबित = y, सर्वर = y
तो JVM शुरू करने के बाद रोक देगा जावा प्रक्रिया लेकिन मुख्य श्रेणी को निष्पादित करने से पहले, जब तक डीबगर/एजेंट पोर्ट 8000 से जुड़ा हुआ न हो।
तो शायद इन पैरामीटर के साथ पृष्ठभूमि में प्रोग्राम शुरू करने के लिए एक रैपर स्क्रिप्ट का उपयोग करना संभव होगा, एक के लिए सो जाओ दूसरा या तो, जावा प्रक्रिया के लिए प्रोसेसर की संख्या को सेट करने के लिए पबिंद का उपयोग करें, फिर ए ttach और बंदरगाह 8000 के लिए कुछ एजेंट को अलग करें (जो निष्पादन के साथ आगे बढ़ने के लिए जावा प्राप्त करने के लिए पर्याप्त होगा)।
इस विचार में त्रुटियों या संभावित हिचकिचाहट यह होगा कि डीबग मोड में चलना आपके ऐप के प्रदर्शन को प्रभावित करेगा (यह सामान्य रूप से बड़ा प्रभाव नहीं प्रतीत होता है), चाहे आप किसी प्रकार का नो-ऑप नियंत्रित कर सकें कमांड लाइन से जेडीडब्लूपी एजेंट, और क्या आप मशीन पर बंदरगाह खोलने में सक्षम हैं। ऐसा कुछ नहीं है जिसे मैंने पहले स्वचालित करने की कोशिश की है (हालांकि मैंने जावा प्रक्रिया के nice
नेस को ढीला करने से पहले मैन्युअल तरीके से कुछ समान रूप से उपयोग किया है), इसलिए अन्य समस्याएं जिन्हें मैंने अनदेखा कर दिया है।
स्रोत
2009-05-27 09:49:08
हाँ, धन्यवाद, लेकिन दुर्भाग्यवश जो वास्तव में मेरे प्रश्न का उत्तर नहीं देती है। –