2009-09-19 13 views
5

जावा में अधिकतम सीपीयू घड़ी कैसे प्राप्त करें

Runtime.getRuntime().availableProcessors(); 

के साथ मैं सीपीयू की संख्या प्राप्त कर सकते हैं।

लेकिन मैं उनकी घड़ी आवृत्ति कैसे प्राप्त कर सकता हूं?

मैं एक ओएस-इंडिपेंडेंट समाधान की तलाश में था।

+0

यह ओएस-विशिष्ट है। आप किस ओएस चल रहे हैं? –

+0

शायद केवल प्लेटफ़ॉर्म-विशिष्ट समाधान मौजूद हैं (पढ़ें/proc/cpuinfo?)। लेकिन सामान्य रूप से - अब freq को बताना आसान नहीं है ... क्या आप वर्तमान आवृत्ति का मतलब है? या अधिकतम आवृत्ति? और अधिकतम 4GHz के साथ मेजबान साझा करने वाले वीएम सीमित नहीं हैं? (क्या 4 ऐसे होस्टों में 4GHz, या 1GHz प्रत्येक है या शायद 80MHz का वर्तमान निष्क्रिय मान) – viraptor

+0

मुझे नहीं पता कि आप इस जानकारी का उपयोग किसके लिए करना चाहते हैं, लेकिन ध्यान दें कि घड़ी आवृत्ति प्रोसेसर कितनी तेज़ी से मेल नहीं खाती है computations कर सकते हैं। उदाहरण के लिए एक 3 गीगाहर्ट्ज पेंटियम 4 2.4 गीगाहर्ट्ज कोर 2 डुओ से धीमा है। – Jesper

उत्तर

6

Java SE API में कोई सुविधा उपलब्ध नहीं है जो CPU की आवृत्ति को वापस कर देगी।

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

Runtime.availableProcessors विधि के लिए जावा API विनिर्देश से:

प्रोसेसर जावा आभासी मशीन के लिए उपलब्ध की संख्या देता है।

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

ऐसी जानकारी प्राप्त करने के लिए, सबसे अधिक संभावना है कि किसी को Java Native Interface (जेएनआई) के माध्यम से मूल कॉल का उपयोग कर ऑपरेटिंग सिस्टम को कॉल करना होगा।

+0

धन्यवाद। बहुत साफ़। मैं मूल विधि की खोज कर रहा था, लेकिन यदि अस्तित्व में नहीं है तो मैं जेएनआई का अध्ययन करूंगा। ;) –

+0

यह अंतर्निहित हार्डवेयर को बिल्कुल मॉडल करने का इरादा नहीं है बल्कि हार्डवेयर समर्थन कर सकते हैं समवर्ती धागे की संख्या का एक मोटा विचार देने के लिए। –

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