आप जावा के साथ किन लोगों को उपयोग करने की सलाह दे सकते हैं?
केवल आवश्यकता है यह खुला स्रोत होना चाहिए, या बहुत महंगा शैक्षणिक लाइसेंस नहीं होना चाहिए।
आप जावा के साथ किन लोगों को उपयोग करने की सलाह दे सकते हैं?
केवल आवश्यकता है यह खुला स्रोत होना चाहिए, या बहुत महंगा शैक्षणिक लाइसेंस नहीं होना चाहिए।
जवाबों:
VisualVM जो कि jdk6 के साथ आता है, उसके अंदर एक बुनियादी प्रोफाइलर है। VisualVM को jdk के साथ प्रदान किया जाता है, इसलिए यदि आपके पास jdk6 स्थापित है, तो संभव है कि आपने इसे भी स्थापित किया हो।
VisualVM
सफलता से पहले उपयोग किया है , लेकिन टॉमकैट ऐप को प्रोफाइल करने की कोशिश करते समय यह मेरे लिए दुर्घटनाग्रस्त था। इसने मेरे लिए काम किया: github.com/jvm-profiling-tools/honest-profiler
आपको यहां एक सूची मिली है (उन्हें नीचे सूचीबद्ध करते हुए, इन-केस लिंक टूट जाता है)
- JMemProf
- जेएमपी
- DrMem
- JTreeProfiler
- नेटबींस प्रोफाइलर
- जमान एपीआई
- JBoss प्रोफाइलर
- MessAdmin
- अवरक्त
- TomcatProbe
- जावा इंटरएक्टिव प्रोफाइलर (JIP)
- Profiler4j
- स्टॉपवॉच देखनी
- JMeasurement
- DJProf
- TIJmp
- Allmon
- Appspy
- EurekaJ
- japex
- ओकेटेक प्रोफाइलर
- Perf4j
आह। 2009 में Netbeans Profiler , developer.com का "प्रोडक्ट ऑफ द ईयर" विजेता।
जावा में एक मूल है जिसे प्रोफाइलर में बनाया गया है जिसे HProf कहा जाता है । मैं इसे उन परिणामों की तुलना करने के लिए उपयोगी मानता हूं जो इसे पूरी तरह से सुविधाओं वाले प्रोफाइलर्स के परिणामों के साथ प्रदान करता है।
ओपन-सोर्स टूल jvmtop में एक बुनियादी कंसोल प्रोफाइलर शामिल है। उदाहरण आउटपुट:
JvmTop 0.7.0 alpha - 15:16:34, amd64, 8 cpus, Linux 2.6.32-27, load avg 0.41
http://code.google.com/p/jvmtop
Profiling PID 24015: org.apache.catalina.startup.Bootstrap
36.16% ( 57.57s) hudson.model.AbstractBuild.calcChangeSet()
30.36% ( 48.33s) hudson.scm.SubversionChangeLogParser.parse()
7.14% ( 11.37s) org.kohsuke.stapler.jelly.JellyClassTearOff.parseScript()
6.25% ( 9.95s) net.sf.json.JSONObject.write()
3.13% ( 4.98s) ....kohsuke.stapler.jelly.CustomTagLibrary.loadJellyScri()
यहाँ TPTP का उपयोग करके जावा एप्लीकेशन प्रोफाइलिंग के बारे में एक लेख दिया गया है और यहाँ एक ट्यूटोरियल प्रोफाइलिंग J2SE 5.0 आधारित अनुप्रयोगों का उपयोग किया गया है जो कि TPTP का उपयोग कर रहे हैं ।
यदि आप नो-फ्रिल्स की तलाश में हैं, तो ओपन सोर्स प्रोफाइलर का उपयोग करना आसान है, आप जिप ( जावा इंटरएक्टिव प्रोफाइलर ) पर एक नज़र रखना चाह सकते हैं । यह बीएसडी लाइसेंस के तहत प्रकाशित होता है। मैंने पाया कि यह छोटे कार्यक्रमों के लिए काफी उपयोगी है। कम से कम, परिणाम यह देता है कि hprofs उत्पादन की तुलना में समझने में अधिक आसान है।
जावा मिशन नियंत्रण , यह विकास के लिए उपयोग करने के लिए स्वतंत्र है और यह ग्रहण के साथ एकीकृत होता है। यह बहुत कम ओवरहेड (<1%) है क्योंकि यह जेवीएम डेटा पर वैसे भी जमा हो रहा है।
इसका उपयोग करना बहुत आसान है और यह बहुत सी जानकारी भी दे सकता है जो आपको आमतौर पर अन्य प्रोफाइलिंग टूल में नहीं मिलेगी, जैसे विलंबता रूपरेखा, ऑनलाइन मेमोरी निरीक्षण, विस्तृत जीसी आँकड़े
यह त्वरित, गंदा और बहुत प्रभावी है: बस कुछ थ्रेड डंप लें, या प्रोग्राम को कई बार रोकें, और स्टैक के निशान को देखें।
अत्याधुनिक https://github.com/jvm-profiling-tools/async-profiler पर विचार करें
यह प्रोजेक्ट जावा के लिए एक कम ओवरहेड सैंपलिंग प्रोफाइलर है जो कि सेफेपॉइंट पूर्वाग्रह की समस्या से ग्रस्त नहीं है । यह स्टैक निशान को इकट्ठा करने और मेमोरी आवंटन को ट्रैक करने के लिए हॉटस्पॉट-विशिष्ट एपीआई की सुविधा देता है। प्रोफाइलर OpenJDK, Oracle JDK और हॉटस्पॉट JVM पर आधारित अन्य जावा रनटाइम के साथ काम करता है।
यह बिल्ट-इन इंटेलीजे आईडिया अल्टीमेट: https://www.jetbrains.com/help/idea/cpu-profiler.html भी है ।
इसी तरह के https://github.com/jvm-profiling-tools/honest-profiler भी है ।
async-profiler
और के बीच की तुलना honest-profiler
: https://github.com/jvm-profiling-tools/async-profiler/issues/77
नेटबीन्स आईडीई में एक नि: शुल्क प्रोफाइलर शामिल है।
इसके अलावा, अगर मुझे सही तरीके से याद है, तो JProfiler का शैक्षणिक लाइसेंस (अपेक्षाकृत) सस्ता है।
जेवीएम मॉनिटर एक जावा प्रोफाइलर है जिसे ग्रहण के साथ सीपीयू, थ्रेड और जावा अनुप्रयोगों के मेमोरी उपयोग की निगरानी के लिए एकीकृत किया गया है।
यदि आगे गहन विश्लेषण की आवश्यकता है, तो आप अगले चरण के रूप में अन्य उपकरणों (जैसे टीपीटीपी , मेमोरी विश्लेषक ) का उपयोग कर सकते हैं ।