2012-07-20 26 views
7

मुझे समय लगता है कि मेरे साधारण गेम को चलाने की ज़रूरत है इसलिए मैंने नेटबीन्स जावा प्रोफाइलर (जावा 1.7) का उपयोग किया है और मैं "हॉट स्पॉट" टैब में "सेल्फ टाइम" और "इनवोकेशन" कॉलम देख सकता हूं।नेटबीन्स प्रोफाइलर का "सेल्फ टाइम" वास्तव में क्या मतलब है?

उदाहरण के लिए, मेरे विधि प्रस्तुत करना है:

स्व समय: 1025 एमएस

आमंत्रण: 2311

तो, अगर मैं अच्छी तरह से समझते हैं, यह वास्तव में कुल इसका मतलब यह है सभी रेंडर विधि आविष्कारों के साथ मिलकर समय 1025 एमएस देता है और एक विधि निष्पादन का औसत समय 1025/2311 = 0,44 एमएस है?

यदि हां, तो क्या मैं आईडीई को कुल समय के बजाय औसत समय प्रदर्शित करने के लिए मजबूर कर सकता हूं?

+1

यदि आपका लक्ष्य कुल को कम करना है तो आप औसत को प्रदर्शित क्यों करना चाहते हैं? –

+3

ठीक है, अगर मेरे पास एक विधि में एक गेम लूप लागू किया गया है, तो मैं देख सकता हूं कि एक निष्पादन (फ्रेम) कितना समय लेता है ... –

+0

हां, आपको विभाजित करने की आवश्यकता है। हालांकि, इंस्ट्रूमेंटेशन मोड में प्रोफाइलर चला रहा है (या, वास्तव में, इसे बिल्कुल चल रहा है), प्रदर्शन को प्रभावित करता है (जैसे कि जेआईटी ऑप्टिमाइज़ेशन को रोकना), और यह बहुत उपयोगी नहीं है। मैन्युअल समय/बेंचमार्किंग (उदाहरण के लिए, सिस्टम.नानोटाइम को कॉल करना) बेहतर हो सकता है लेकिन समस्या से भी भरा हुआ है। –

उत्तर

19

आमतौर पर, "स्वयं समय" के अंदर बिताए गए समय को मापता है - जिस तरीके से कॉल किया जाता है, उसे छोड़कर समय निकाला जाता है। उदाहरण के लिए, कहें कि सॉर्ट किए गए उपयोगकर्ताओं को पुनर्प्राप्त करने के लिए आपके पास एक आसान तरीका है, , जिसे दो विधियों कहा जाता है जिन्होंने स्वयं को कोई अन्य कॉल नहीं किया है।

UserList getUsers() { 
    return sortUsers(loadUsers()); 
} 

के बाद से कोई काम नहीं करता है, अपने स्वयं के समय बहुत कम है, भले ही विधि बुला महंगा है किया जाएगा।

Method  Self Time Call Time 
----------- --------- --------- 
getUsers   3 ms 1,184 ms 
loadUsers  923 ms  923 ms 
sortUsers  258 ms  258 ms 

यह अन्य प्रोफाइलों पर आधारित है - नेटबीन नहीं। उम्मीद है कि कोई नेटबीन के लिए खुद को पुष्टि या अस्वीकार कर सकता है।

+2

नोट: जिन तरीकों को रेखांकित किया गया है वे * माता-पिता के * स्वयं-समय की ओर गिना जाएगा और रिपोर्ट नहीं की जाएगी। जब तक प्रोफाइलर की उपस्थिति न हो, तब तक जेआईटी उन तरीकों को अनलाइन करने का कारण बनती है और आप समग्र प्रदर्शन ड्रॉप देखेंगे। कोरर, समय-महत्वपूर्ण तरीकों के प्रदर्शन को समझने के लिए प्रोफाइलर बहुत उपयोगी नहीं है। माइक्रोबेंमार्किंग (यानी, बिना प्रोफाइलर के शामिल) बेहतर है, हालांकि सही करने के लिए मुश्किल है। –

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

  • कोई संबंधित समस्या नहीं^_^