2016-04-15 13 views
6

का सीपीयू और स्मृति के उपयोग पाने के लिए मेरे वर्तमान प्रक्रिया या जावा में आवेदन की सीपीयू & स्मृति उपयोग पाने के लिए एक API की आवश्यकता है। मैं पूरी प्रणाली की cpu उपयोग पाने के लिए एक API मिल गया लेकिन मैं विशेष प्रक्रिया के लिए की जरूरत है। (OperatingSystemMXBean इंटरफ़ेस का getSystemCpuLoad)जावा एपीआई मेरी जावा आवेदन

अग्रिम

+4

यह आप स्मृति के उपयोग से क्या मतलब है पर निर्भर करता है; क्या आपका मतलब निवासी स्मृति, वर्चुअल मेमोरी, उपयोग में ढेर, लाइव ऑब्जेक्ट्स, ये बहुत अलग हो सकते हैं। –

+0

मेरा मतलब है उपयोग में ढेर। –

+0

यह रनटाइम का उपयोग करके प्राप्त किया जा सकता है। कुल मेमरी() - फ्रीमेमरी() नोट यह आपको इस बारे में ज्यादा जानकारी नहीं देता है कि ढेर कितना भरा है, केवल आप अगले पूर्ण जीसी से कितने दूर हैं। –

उत्तर

4

धन्यवाद अच्छी खबर यह है और बुरी खबर है। बुरी खबर यह है कि सीपीयू उपयोग के लिए प्रोग्रामेटिक रूप से पूछताछ शुद्ध जावा का उपयोग करना असंभव है। इसके लिए बस कोई एपीआई नहीं है। एक सुझाव विकल्प Runtime.exec() का उपयोग कर सकते JVM की प्रक्रिया आईडी (पीआईडी) निर्धारित करने के लिए, ps की तरह एक बाहरी, प्लेटफ़ॉर्म-विशिष्ट आदेश कहते हैं, और ब्याज की पीआईडी ​​के लिए इसके उत्पादन को पार्स। लेकिन, यह दृष्टिकोण सबसे अच्छा नाजुक है।

अच्छी खबर यह है कि जावा के बाहर कदम उठाकर और कुछ सी कोड लाइनों को लिखकर एक विश्वसनीय समाधान पूरा किया जा सकता है जो जावा मूल इंटरफेस (जेएनआई) के माध्यम से जावा एप्लिकेशन के साथ एकीकृत करता है।

+0

यदि आप चाहते हैं तो मैं इसे प्राप्त करने में आपकी सहायता कर सकता हूं। –

4

आपको लगता है कि डेटा प्राप्त करता है, तो आप एक अलग OperatingSystemMXBean उपयोग कर सकते हैं। चेक आयातित पैकेज: com.sun.management.OperatingSystemMXBean

import java.lang.management.ManagementFactory; 
import com.sun.management.OperatingSystemMXBean; 

public class Test { 

public static void main(String[] args) { 
     OperatingSystemMXBean operatingSystemMXBean = 
      (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); 
     System.out.println(operatingSystemMXBean.getProcessCpuLoad()); 
}} 

https://docs.oracle.com/javase/7/docs/jre/api/management/extension/com/sun/management/OperatingSystemMXBean.html

अगर मैं गलत नहीं हूँ, इस वर्ग के rt.jar में अपने जावा क्रम में मौजूद शामिल है।

+0

देता संकलन त्रुटि: विधि getProcessCpuLoad() प्रकार OperatingSystemMXBean के लिए अनिर्धारित रहता है। –

+0

@PSM आयात की जांच करें। क्या आप वाकई com.sun.management.OperatingSystemMXBean आयात कर रहे हैं? – RubioRic

+0

@PSM मुझे लगता है कि आप अभी भी java.lang.management.OperatingSystemMXBean का उपयोग कर रहे हैं – RubioRic

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