मैं थ्रेड डंप लेने के दृष्टिकोण के बीच मतभेदों का विश्लेषण कर रहा हूं। नीचे उनमें से जोड़ी मैं एक JMX सेम जो एक घोषित सेम आपरेशन क्लिक करने पर() Runtime.exec के माध्यम से चलाता है jstack परिभाषितउत्पादन में थ्रेड डंप लेना
पर शोध कर रहा हूँ रहे हैं।
डेमॉन थ्रेड निष्पादित "प्रबंधनFactory.getThreadMXBean()। डंपअल्ट थ्रेड (सत्य, सत्य)" एक पूर्वनिर्धारित अंतराल के बाद बार-बार।
दोनों के बीच तुलना करना धागा डंप आउटपुट, मैं दृष्टिकोण 2
- थ्रेड डंप दृष्टिकोण 2 के साथ लॉग इन के साथ नीचे नुकसान देख TDA तरह
- खुला स्रोत धागा डंप विश्लेषक द्वारा पार्स नहीं किया जा सकता है आउटपुट में मूल थ्रेड आईडी शामिल नहीं है जो उच्च सीपीयू मुद्दों का विश्लेषण करने में उपयोगी हो सकती है (दाएं?)
- और भी?
मैं
पर सुझाव/आदानों प्राप्त करने की सराहना करेंगे वहाँ रहे हैं उत्पादन कोड में Runtime.exec() के माध्यम से jstack को क्रियान्वित करने के किसी भी नुकसान? विभिन्न ऑपरेटिंग सिस्टम पर कोई संगतता मुद्दे - विंडोज़, लिनक्स?
थ्रेड डंप लेने के लिए कोई अन्य दृष्टिकोण?
धन्यवाद।
संपादित करें -
1 और 2 की एक संयुक्त दृष्टिकोण जाने का रास्ता हो रहा है। हमारे पास थ्रेड डंप विश्लेषकों द्वारा समझा गया प्रारूप में लॉग फ़ाइल में थ्रेड डंप को पृष्ठभूमि में चलने वाला एक समर्पित धागा हो सकता है। यदि कोई अतिरिक्त जानकारी की आवश्यकता है (जैसे कि शायद मूल थ्रेड आईडी कहें) जो केवल जेस्टैक आउटपुट द्वारा लॉग इन है, हम इसे मैन्युअल रूप से आवश्यकतानुसार करते हैं।
क्या यह एक जेईई आवेदन के संबंध में है? –
@WaleedMadanat हां –