jconsole पर एक प्रक्रिया का अवलोकन टैब मुझे CPU उपयोग प्रतिशत दिखाता है। क्या कोई एमबीन है जो मुझे यह मूल्य देता है? इसका ऑब्जेक्टनाम क्या है?सीपीयू उपयोग (%) एमबीएन पर सूर्य जेवीएम
उत्तर
प्रबंधन फैक्टरी के भीतर प्रत्यक्ष एमबीन प्रतीत नहीं होता है। निकटतम http://java.sun.com/javase/6/docs/api/java/lang/management/OperatingSystemMXBean.html#getSystemLoadAverage() है जिसका उपयोग संपूर्ण सिस्टम द्वारा उपयोग किए गए CPU की गणना करने के लिए किया जा सकता है।
हालांकिthis URL has suggested a method की JConsole
अद्यतन स्रोत कोड पर आधारित: जावा 7 में आप यह इतना की तरह कर सकते हैं:
public static double getProcessCpuLoad() throws MalformedObjectNameException, ReflectionException, InstanceNotFoundException {
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
ObjectName name = ObjectName.getInstance("java.lang:type=OperatingSystem");
AttributeList list = mbs.getAttributes(name, new String[]{ "ProcessCpuLoad" });
if (list.isEmpty()) return Double.NaN;
Attribute att = (Attribute)list.get(0);
Double value = (Double)att.getValue();
if (value == -1.0) return Double.NaN;
return ((int)(value * 1000)/10.0); // returns a percentage value with 1 decimal point precision
}
----- -----
नीचे मूल जवाबजावा 7 में आप com.sun.management.OperatingSystemMXBean
की छिपी तरीकों का उपयोग कर सकते हैं:
getProcessCpuLoad() // returns the CPU usage of the JVM
getSystemCpuLoad() // returns the CPU usage of the whole system
दोनों मान 0.0 और 1.0 के बीच डबल के रूप में लौटाए जाते हैं, इसलिए प्रतिशत प्राप्त करने के लिए बस 100 से गुणा करें।
com.sun.management.OperatingSystemMXBean osBean = ManagementFactory.getPlatformMXBean(OperatingSystemMXBean.class);
System.out.println(osBean.getProcessCpuLoad() * 100);
System.out.println(osBean.getSystemCpuLoad() * 100);
इन के बाद से छिपे हुए हैं, undocumented वाली विधियों com.sun.management.OperatingSystemMXBean
पैकेज में मौजूद हैं और नहीं java.lang.management.OperatingSystemMXBean
में एक जोखिम है कि वे कुछ JVMs में या भावी अपडेट में उपलब्ध नहीं होगा, तो आप तय करना चाहिए है वहाँ अगर तुम ' उस जोखिम को लेने के लिए तैयार हैं या नहीं।
अधिक के लिए https://www.java.net/community-item/hidden-java-7-features-%E2%80%93-system-and-process-cpu-load-monitoring देखें।
मैंने इंटरनेट से एक कोड संशोधित किया, इस तरह मैंने परीक्षण किया और परिणाम लगभग लिनक्स ps कमांड के परिणाम से मेल खाता है।
/** नीचे कोड */
public float getCpuUsed() {
/** get a MXBean */
com.sun.management.OperatingSystemMXBean osMXBean =
(com.sun.management.OperatingSystemMXBean)
ManagementFactory.getOperatingSystemMXBean();
/** set old timestamp values */
long previousJvmProcessCpuTime = osMXBean.getProcessCpuTime();
int sleepTime = 350;
/** sleep for a while to use to calculate */
try {
TimeUnit.MILLISECONDS.sleep(sleepTime);
} catch (InterruptedException e) {
logger.error("InterruptedException occurred while MemoryCollector sleeping...");
}
/** elapsed process time is in nanoseconds */
long elapsedProcessCpuTime = osMXBean.getProcessCpuTime() - previousJvmProcessCpuTime;
/** elapsed uptime is in milliseconds */
long elapsedJvmUptime = sleepTime ;
/** total jvm uptime on all the available processors */
//long totalElapsedJvmUptime = elapsedJvmUptime * osMXBean.getAvailableProcessors() ;
long totalElapsedJvmUptime = elapsedJvmUptime;
//System.out.println("echo cpu processors num " + osMXBean.getAvailableProcessors());
/** calculate cpu usage as a percentage value
to convert nanoseconds to milliseconds divide it by 1000000 and to get a percentage multiply it by 100 */
float cpuUsage = elapsedProcessCpuTime/(totalElapsedJvmUptime * 10000F);
return (float)(Math.round(cpuUsage*10)/10);
}
- 1. सूर्य जेवीएम (जेआरई जेआर 1.6.0_24) segfault NET_Read
- 2. नए पंजीकृत एमबीएन
- 3. जेएमएक्स एमबीएन थ्रेड सुरक्षा
- 4. क्या प्रभाव है, यदि कोई है, तो डीडी 64 स्विच सूर्य जेवीएम निवासी स्मृति उपयोग पर है?
- 5. एंड्रॉइड पर ऐप का सीपीयू उपयोग पाएं
- 6. जेवीएम मेमोरी डिफ़ॉल्ट
- 7. सीपीयू उपयोग और ऑब्जेक्ट.वाइट
- 8. नैनोस्लीप उच्च सीपीयू उपयोग?
- 9. सीपीयू उपयोग की गणना
- 10. सी ++ सीपीयू रजिस्टर उपयोग
- 11. एंड्रॉइड - मेमोरी/सीपीयू उपयोग
- 12. फ़ायरफ़ॉक्स प्लगइन सीपीयू उपयोग
- 13. सीपीयू उपयोग थ्रेड
- 14. एंड्रॉइड सेंसर सीपीयू उपयोग
- 15. सूर्य जेवीएम जावा थ्रेड को विंडोज थ्रेड के लिए कैसे करता है?
- 16. कैविट्स सूर्य जेवीएम से जेआरॉकिट में संक्रमण में देखने के लिए?
- 17. प्रोग्राम पर कंप्यूटर पर सीपीयू प्रशंसक का उपयोग करें? (विंडोज़)
- 18. कार्यसूची सीपीयू% उपयोग
- 19. जेवीएम का मालिक कौन है?
- 20. जेवीएम
- 21. सूर्य का जावा पैकेज नामकरण सम्मेलन: सूर्य बनाम com.sun
- 22. जेवीएम बेंचमार्किंग एप्लिकेशन
- 23. शैल स्क्रिप्ट में सीपीयू उपयोग प्राप्त करें?
- 24. सूर्य CodeModel सामान्य विधि
- 25. जेवीएम
- 26. सूर्य मालिकाना एपीआई
- 27. असुरक्षित सूर्य वर्ग कार्यान्वयन
- 28. सीपीयू
- 29. सीपीयू
- 30. पायथन/पायसियरियल और सीपीयू उपयोग
नहीं (सरल) समाधान मैं चाहता था है, लेकिन एक ही तरीका हो रहा है। – tuler
ध्यान दें कि कलाकार com.sun.management.OperatingSystemMXBean है! –
आपके द्वारा दिया गया यूआरएल जावा 7 के लिए काम करता है। 'Com.sun.management.OperatingSystemMXBean' जावा 6 के साथ सुलभ नहीं है ... – Matthieu