“थ्रेड.स्लीप” के बिना “जबकि (सच्चा)” लिनक्स पर 100% सीपीयू उपयोग का कारण बनता है लेकिन विंडोज पर नहीं?


158

मैंने जावा में एक सरल प्रोग्राम बनाया है:

public static void main(String[] args) throws InterruptedException {
    while (true) 
        ;
}

अगर मैं इसे लिनक्स मशीन पर चलाता हूं, तो यह 100% CPU उपयोग दिखाता है, लेकिन इससे OS धीमा नहीं होता है। हालाँकि, अगर मैं विंडोज़ पर सटीक समान कोड चलाता हूं, तो यह केवल 20% CPU उपयोग दिखाता है।

मैं विंडोज पर Oracle JRE और लिनक्स पर OpenJDK 6 का उपयोग कर रहा हूं।

मैं सोच रहा हूँ कि क्या विंडोज के शेड्यूलर ने थ्रेड को बेतरतीब ढंग से और लिनक्स के थ्रेड को प्रीमिट नहीं किया?


5
यह ऑपरेटिंग सिस्टम टास्क शेड्यूलिंग पर निर्भर है।
सुभ्रज्योति मजुमदार

52
आपके पास कितने कोर हैं? जब सभी कोर व्यस्त हैं, तो Windows कार्य प्रबंधक 100% रिपोर्ट करता है। क्या आपका लिनक्स टूल कुछ ऐसा ही करता है, या यह 1 कोर के काम के लिए 100% की रिपोर्ट करता है, और जब सभी कोर व्यस्त हैं, तो यह 100*N cores %क्या है?
Yiding

2
मेरे पास 4 कोर हैं और लिनक्स पर मैं सिस्टम मॉनीटर टूल का उपयोग करता
हूं

1
@ सच में नहीं। यदि वह प्रोग्राम सभी चल रहा है, तो थ्रेड विंडोज और लिनक्स दोनों पर बिना किसी रुकावट के चलेगा।
डेविड हेफर्नन

जवाबों:


387

डिफ़ॉल्ट रूप से, topलिनक्स पर तथाकथित आईआरआईएक्स मोड में चलता है, जबकि विंडोज टास्क मैनेजर नहीं करता है। मान लीजिए कि आपके पास 4 कोर हैं:

  • IRIX मोड के साथ, 1 पूरी तरह से उपयोग किया गया कोर 100% है और 4 कोर 400% हैं।

  • आईआरआईएक्स मोड ऑफ के साथ, 1 पूरी तरह से उपयोग किया गया कोर 25% है और 4 कोर 100% हैं।

इसका मतलब है कि डिफ़ॉल्ट रूप से, topलिनक्स पर ~ 100% के रूप में एक अनंत लूप दिखाई देगा और विंडोज इसे ~ 25% के रूप में दिखाएगा, और इसका मतलब बिल्कुल वही है।

आप IRIX मोड को टॉगल कर सकते हैं, जबकि + के topसाथ चल रहा है । इससे नंबर मैच हो जाएंगे।Shifti


2
Yup - '4 + 4' i7, (हाइपरथ्रेडिंग) पर, एक तुच्छ CPU लूप लगभग 17-18% पर आता है।
मार्टिन जेम्स

हालांकि उत्तर देने वाले के पास 150UP है फिर भी उसका स्कोर 700 है ... क्या यह SO बग है ?? : - /
uday

5
@uDaY, क्योंकि एक दिन में अधिकतम 200 प्रतिनिधि होते हैं, उसके बाद किसी भी upvotes को गिना नहीं जाता है, स्वीकार किए जाते हैं कि अभी भी होगा।
sa_ddam213

3
@thatotherguy जब शिफ्ट-आई को टॉगल करना है? जबकि शीर्ष चल रहा है?
Geek
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.