2012-09-13 5 views
8

मुझे यह बताने की ज़रूरत है कि मेरा एप्लिकेशन दूरस्थ स्थान पर खराब प्रदर्शन क्यों कर रहा है। एक प्रोफाइलर स्थापित करने के लिए मेरे लिए असुविधाजनक होने जा रहा है। मुझे संदेह है कि मशीन खराब तरीके से कॉन्फ़िगर की गई है, लेकिन मुझे यह दिखाने के लिए कुछ आसान तरीका चाहिए कि एक मानक ऐप उनकी मशीन पर पीड़ित है, इस प्रकार मेरा आवेदन पूरा कर रहा है और फोकस को अपने सिस्टम प्रशासकों को स्थानांतरित कर रहा है।किसी मशीन के सीपीयू, मेमोरी, डिस्क और नेटवर्क I/O प्रदर्शन को बेंचमार्क करने के लिए कौन सी जावा उपयोगिताओं मौजूद हैं?

आदर्श रूप में, मैं वे कहते हैं कि मेजबान पर्यावरण के प्रदर्शन का परीक्षण करती है एक साधारण जावा एप्लिकेशन इंस्टॉल सुझाव देना चाहते हैं। अगर यह सीपीयू, डिस्क, नेटवर्क इत्यादि के लिए कुछ विशिष्टता वापस कर सकता है, तो वे सही होंगे।

मैं वेब पर ऐसी बात को खोजने के लिए उम्मीद है, लेकिन मैं असफल किया गया है अब तक मेरी खोज में।

+1

आपको क्या लगता है समस्या का कारण हो सकता है? आपके आवेदन में बहुत सारे डेटा हैं? इसमें फैंसी ग्राफिक्स हैं? डेटाबेस से कनेक्शन? आप केवल उस चीज का परीक्षण करना चाहेंगे जो आपको लगता है कि समस्या का कारण बन रहा है –

+0

खराब प्रदर्शन क्या कर रहा है? क्या यह धीरे-धीरे डेटाबेस तक पहुंच रहा है, क्या उसे स्क्रीन पर आकर्षित करने में लंबा समय लगता है। क्या यह हमेशा बुरी तरह प्रदर्शन करता है या प्रदर्शन असंगत है? –

+0

आप 'जेस्टैक' या 'मार -3' का उपयोग करते हुए हमेशा गरीब व्यक्ति के प्रोफाइलर के रूप में कुछ थ्रेड डंप कर सकते हैं। –

उत्तर

12

जहां तक ​​"सरल जावा ऐप" है, मैंने पहले कुछ ऐसा ही किया था। मेरे प्रयास जावा वीएम (वर्चुअल मशीन - "जेवीएम") की प्रोफाइलिंग पर केंद्रित थे, एक विशिष्ट जावा एप्लिकेशन के प्रदर्शन का परीक्षण नहीं करते थे। फोकस होस्टिंग ऑपरेटिंग सिस्टम की क्षमताओं का परीक्षण पर था - व्यायाम:

  • सीपीयू
  • मेमोरी
  • ऑपरेटिंग सिस्टम
  • आभासी है, तो सर्वर वी एम (न JVM) ही - दोनों आभासी सहित और उपर्युक्त सभी के भौतिक घटक।
  • बाहरी कारकों को बड़े पैमाने पर अनदेखा करना, उदा। डिस्क और नेटवर्क।

समाधान मैंने देखा इस के लिए शामिल है:

SciMark वैज्ञानिक में होने वाली संख्यात्मक कोड प्रदर्शन को मापने एक समग्र जावा बेंचमार्क है और इंजीनियरिंग अनुप्रयोगों। इसमें पांच कम्प्यूटेशनल कर्नेल शामिल हैं: एफएफटी, गॉस-सेडल विश्राम, स्पैर मैट्रिक्स-गुणा, मोंटे कार्लो एकीकरण, और घने LU कारककरण।

इन कर्नेल को इस संकेत के लिए चुना जाता है कि इन प्रकार के एल्गोरिदम का उपयोग करने वाले अनुप्रयोगों पर अंतर्निहित जेवीएम/जेआईटी कितनी अच्छी तरह से प्रदर्शन करते हैं। स्मृति पदानुक्रम के प्रभाव को अलग करने और आंतरिक JVM/JIT और CPU समस्याओं पर ध्यान केंद्रित करने के लिए समस्याओं का आकार जानबूझकर में छोटा होने के लिए चुना जाता है। बेंचमार्क का एक बड़ा संस्करण (SciMark 2.0 लार्ज) आउट-ऑफ-कैश समस्या आकार के साथ स्मृति उपप्रणाली के प्रदर्शन को संबोधित करता है।

यह कई कम्प्यूटेशनल कर्नेल को मापता है और अनुमानित Mflops ( प्रति सेकंड के फ़्लोटिंग पॉइंट ऑपरेशंस के लाखों) में एक समग्र स्कोर की रिपोर्ट करता है।

कुछ हद तक दिनांकित (2004), जबकि साइमार्क अभी भी काफी प्रभावी प्रतीत होता है।

प्रत्येक टेस्ट रन निष्पादित करने में लगभग 30 सेकंड लगते हैं।

SPECjvm2008 (जावा वर्चुअल मशीन बेंचमार्क) जावा रनटाइम एनवायरनमेंट (JRE) का प्रदर्शन को मापने के लिए एक मानक के लिए सूट, कई वास्तविक जीवन अनुप्रयोगों और मानक युक्त है कोर जावा कार्यक्षमता पर ध्यान केंद्रित करना। सुइट जेआरई के प्रदर्शन पर एक ही अनुप्रयोग निष्पादित करने पर केंद्रित है; यह हार्डवेयर प्रोसेसर और मेमोरी उपप्रणाली के प्रदर्शन को दर्शाता है, लेकिन फ़ाइल I/O पर कम निर्भरता है और मशीनों में कोई नेटवर्क I/O शामिल नहीं है। SPECjvm2008 वर्कलोड सामान्य सामान्य प्रयोजन अनुप्रयोग गणनाओं की विविधता की नकल करता है। ये विशेषताएं इस इरादे को प्रतिबिंबित करती हैं कि यह बेंचमार्क क्लाइंट और सर्वर सिस्टम दोनों की विस्तृत विविधता पर मूल जावा प्रदर्शन को मापने के लिए लागू होगा।

कल्पना भी जावा के उपयोगकर्ता अनुभव महत्वपूर्ण पाता है, और सूट इसलिए स्टार्टअप मानक भी शामिल है और एक आवश्यक रन श्रेणी आधार कहा जाता है, जो को JVM के किसी भी ट्यूनिंग के बिना चला जाना चाहिए बॉक्स प्रदर्शन से बाहर में सुधार है ।

SPECjvm2008 बेंचमार्क हाइलाइट

  • वास्तविक जीवन अनुप्रयोगों और (xml, क्रमबद्धता, क्रिप्टो, और scimark की तरह) क्षेत्र केंद्रित मानक (डर्बी, Sunflow, और javac) की तरह लाभ उठाता है।
  • जेआरई निष्पादित करने के संदर्भ में ऑपरेटिंग सिस्टम और हार्डवेयर के प्रदर्शन को भी मापता है। taking just over 2 hours -

SciMark के विपरीत, SPECjvm2008 पूरी तरह से सूट निष्पादित करने के लिए बहुत लंबे समय तक ले जाता है।


नेटवर्क के परीक्षण के लिए, मैं iperf की तरह कुछ, दोनों लिनक्स/विंडोज/आदि के लिए उपलब्ध का उपयोग करेंगे।

डिस्क प्रदर्शन का परीक्षण करने के लिए, इसके पीछे एक संपूर्ण विज्ञान है, और यह जानने के बिना कि आप किस ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं, मैं आपको एक विशिष्ट उत्तर नहीं दे सकता। हालांकि, यदि आप लिनक्स का उपयोग कर रहे हैं, उदाहरण के लिए, मैं this की समीक्षा करूंगा।

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