मैं वर्तमान में कुल धागा CPU समय निम्नलिखित तरीके से JMX का उपयोग कर हो रही है का उपयोग कर रही धागा CPU समय के कुशल तरीका:JMX
private long calculateTotalThreadCpuTime(ThreadMXBean thread) {
long totalTime = 0l;
for (ThreadInfo threadInfo : thread.dumpAllThreads(false, false))
totalTime += thread.getThreadCpuTime(threadInfo.getThreadId());
return totalTime;
}
ThreadMXBean वास्तव में एक दूरस्थ प्रॉक्सी है के रूप में, प्रदर्शन भयानक है , इस वास्तविक विधि कॉल के लिए सेकंड की परिमाण के क्रम में।
क्या ऐसा करने का कोई तेज़ तरीका है?
अद्यतन: मैं प्रदर्शन की निगरानी के लिए इस का उपयोग कर रहा हूँ। माप 'वॉल घड़ी' समय और जेपीरोफेलर दोनों थे, जो इस विधि में मेरे 85% समय व्यतीत किए गए थे। मेरे पास कुछ अन्य एमएक्सबीन कॉल हैं (रनटाइम, मेमोरी, जीसी), लेकिन वे बहुत सस्ता हैं। सबसे अधिक संभावना है क्योंकि thread.getThreadCpuTime
पर प्रत्येक कॉल एक दूरस्थ है।
अपडेट 2: जेपीरोफाइलर स्क्रीनशॉट प्रदर्शन समस्याओं को दिखा रहा है।
मैं प्रदर्शन निगरानी के लिए इसका उपयोग कर रहा हूं। माप 'वॉल घड़ी' समय और जेपीरोफेलर दोनों थे, जो इस विधि में मेरे 85% समय व्यतीत किए गए थे। मेरे पास कुछ अन्य एमएक्सबीन कॉल हैं (रनटाइम, मेमोरी, जीसी), लेकिन वे बहुत सस्ता हैं। –