2012-02-15 8 views
15

मेरे पास जावा में ऑप्टिमाइज़ करने की कोशिश करने वाली कुछ बड़ी विधियां हैं I मैं अपनी अधिकांश प्रोफाइलिंग करने के लिए jVisualVM का उपयोग कर रहा हूं क्योंकि यह विधि कॉल हॉट स्पॉट देता है और यह एक महान प्रारंभिक बिंदु है।जावा लाइन-बाय-लाइन विधि/फ़ंक्शन प्रोफाइलिंग - प्रोफाइलर और/या ग्रहण प्लगइन

जो मैं खोज रहा हूं वह एक लाइन-बाय-लाइन हॉट स्पॉट प्रोफाइलर है जो मुझे इतनी देर तक ले जाने में मदद कर सकता है। अतीत में मैंने जो अजीब काम किया है, वह रणनीतिक रूप से System.currentTimeMillis() प्रिंट्स और Java CPUTime (जेएनआई के माध्यम से किया गया) का उपयोग करके अधिक चरम मामलों में रखा गया है। इंटेल समांतर एम्पलीफायर जैसे कुछ प्रोफाइलर हैं जो सी & विजुअल स्टूडियो के साथ काम करते हैं, लेकिन जावा के लिए ऐसा कुछ भी है?

उन दोनों विकल्पों में थोड़ा कठिन है, तो क्या कुछ भी है (ग्रहण प्लग-इन या अन्यथा) जो लाइन-दर-लाइन हॉट स्पॉट विश्लेषण कर सकता है?

उत्तर

4

JProfiler में लाइन नंबर रिज़ॉल्यूशन है। यह डिफ़ॉल्ट रूप से सक्षम नहीं है, लेकिन यदि आप प्रोफाइलिंग सेटिंग्स संपादित करते हैं, तो एक चेक बॉक्स है नाम "विधि कॉल रिकॉर्डिंग" टैब पर "रिकॉर्ड लाइन नंबर और उन्हें कॉल पेड़ में दिखाने":

enter image description here

अस्वीकरण:। मेरी कंपनी को विकसित करता है JProfiler

+4

आप झूठ बोल रहे हैं ठीक है, कम से कम। आंशिक रूप से। रेखा संख्या केवल कॉल साइट के लिए हैं, वास्तविक विधि की सामग्री नहीं। – Dexter

+0

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

0

dynaTrace में आप सभी आमंत्रित तरीकों के साधन से कुछ ऐसा कर सकते हैं, हालांकि यह एक वाणिज्यिक उपकरण है। वैकल्पिक रूप से, आप उदाहरण के लिए एएसएम का उपयोग करके अपना खुद का वाद्य यंत्र लिख सकते हैं (लेकिन यह बेहद कठिन है :()

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