आपके कोड को 100% CPU का उपयोग क्यों नहीं करना चाहिए? [बन्द है]


42

मैं विशेष रूप से Windows XP या उच्चतर पर चलने वाले C # .NET 4 कार्यक्रम के बारे में बोल रहा हूं, लेकिन सामान्य उत्तर भी स्वीकार्य हैं।

पहले से ही अनुकूलित और कुशल कार्यक्रम मान लें। यहाँ समस्या पूरी तरह से हार्डवेयर पर उच्च CPU उपयोग के प्रभावों के लिए है, और क्या पहनने को कम करने के लिए एक उच्च-उपयोग कार्यक्रम को थ्रॉटल किया जाना चाहिए, इस पर नहीं कि मेरा कार्यान्वयन कुशल है या नहीं।

एक सहकर्मी ने आज सुझाव दिया कि मुझे अपनी डेटा लोड प्रक्रियाओं पर 100% सीपीयू उपयोग के लिए लक्ष्य नहीं बनाना चाहिए क्योंकि "आधुनिक सीपीयू सस्ते हैं और 100% सीपीयू में जल्दी से खराब हो जाएंगे"।

क्या ये सच है? और यदि हां, तो क्यों? मैं पहले से ही इस धारणा के तहत था कि 100% सीपीयू का उपयोग एक गहन या लंबे ऑपरेशन के लिए बेहतर था, और मुझे इस विषय पर कोई सम्मानजनक स्रोत नहीं मिला।


6
यह मानते हुए कि आपका एप्लिकेशन बॉक्स पर चलने वाली एकमात्र चीज़ है, तो सख्ती से बोलना, 100% CPU उपयोग वास्तव में खराब नहीं है, बल्कि यह संकेत कर सकता है कि कुछ ऐसा है जो आप बेहतर कर सकते हैं। मैंने डेस्कटॉप ऐप के साथ ज्यादा काम नहीं किया है, लेकिन वेब ऐप्स के लिए, उदाहरण के लिए, मैंने कभी ऐसा एप्लिकेशन नहीं देखा है जो सीपीयू लोड को अधिकतम करता है और उन चक्रों का उपयोग करने वाला कोड वास्तव में इष्टतम था। हमेशा कुछ गड़बड़ है। हालाँकि, ऐसा इसलिए है क्योंकि वेब पर, हम अक्सर I / O बाध्य होते हैं, इसलिए CPU समस्या अनुचित लगती है। मुझे यकीन है कि आपका ऐप अलग है।
ब्रैंडन

7
साथ ही, अलग-अलग ऑपरेटिंग सिस्टम इस केस को अलग तरीके से हैंडल करते हैं। मेरा विंडोज बॉक्स, उदाहरण के लिए, बहुत चलाता है अगर सीपीयू 100% उपयोग किया जाता है। दूसरी ओर, मैंने एक लिनक्स सर्वर को कई दिनों तक सीधे 100% सीपीयू पर चलता देखा है और यह ठीक था। (हालांकि हमने कुछ दिनों बाद एक रिलीज़ जारी किया।)
ब्रैंडन

17
आप अधिक व्यर्थ न होते हुए भी उतनी ही तेजी से काम करना चाहते हैं। यदि आप उपयोगी गणना करने के लिए सीपीयू के 100% का उपयोग करते हैं तो यह अच्छा है। यदि आप बेकार लूप में 100% सीपीयू का उपयोग करते हैं तो यह एक बेकार है।
nwp

10
आप सभी के लिए भुगतान किया। इसका सभी उपयोग करें।
ब्रायन हूपर

4
यह प्रश्न ऑफ़-टॉपिक प्रतीत होता है क्योंकि यह इलेक्ट्रॉनिक्स के बारे में है न कि प्रोग्रामिंग के बारे में।

जवाबों:


59

यदि शीतलन अपर्याप्त है, तो सीपीयू ज़्यादा गरम हो सकता है। लेकिन वे सभी (अच्छी तरह से, कम से कम सभी आधुनिक पीसी सीपीयू) में विभिन्न थर्मल सुरक्षा तंत्र हैं जो घड़ी की गति को थ्रॉटल करेंगे या अंतिम उपाय के रूप में बंद कर देंगे।

तो हां, धूल भरे लैपटॉप पर, 100% सीपीयू लोड अस्थायी समस्या पैदा कर सकता है, लेकिन कुछ भी नहीं टूटेगा या "नीचा" (जो भी इसका मतलब है)।

CPU बाध्य समस्याओं के लिए, 100% CPU लोड जाने का सही तरीका है।

अनुप्रयोग (UI) जवाबदेही के लिए, यह CPU उपयोग से एक अलग अवधारणा है। यह पूरी तरह से एक अनुत्तरदायी अनुप्रयोग के लिए संभव है जो 1% सीपीयू, या उत्तरदायी एप्लिकेशन का उपयोग करता है जो 100% सीपीयू का उपयोग करता है। UI थ्रेड यूआई थ्रेड में किए गए काम की मात्रा, और यूआई थ्रेड बनाम अन्य थ्रेड्स की प्राथमिकता को उबालता है।


3
और ओएस कोर के लिए एक शांत डाउन स्लाइस भी लागू कर सकता है
शाफ़्ट सनकी

8
मुझे लगता है कि वास्तविक उत्तर यह है कि अधिकांश प्रक्रियाएं सीपीयू बाध्य नहीं हैं, लेकिन इसके बजाय मैं / ओ बाध्य हैं, इसलिए आमतौर पर हम ऐसी दुनिया में रहते हैं जहां 100% सीपीयू का उपयोग असामान्य है, कम से कम "सामान्य / सामान्य" गणना के लिए।
15

4
मैं "गणना" के लिए कहते थे, 100% प्राप्त करने के लिए काफी मानक है, लेकिन केवल जब तक "गणना" गणित के साथ कुछ :) उदाहरण प्रसंस्करण MySQL क्वेरी के लिए करना है मेरे लिए गणना नहीं है @windfinder;)
यो '

@tohecz - इस अर्थ में मैंने इसका उपयोग किया अभिकलन का अर्थ है केवल CPU समय। हम यहाँ शब्दावली पर ध्यान दे रहे हैं, मेरे लिए सीपीयू की गणना सब कुछ है (यह "गणना")। एक डेटा वैज्ञानिक के रूप में मैं यह भी कहूंगा कि अधिकांश गणित I / O बाउंड (सबसे तुच्छ गणित से परे) भी हैं। गणित (ओं) की दुनिया में आपका बहुत सारा समय अपने प्रोसेसर को डेटा को कुशलतापूर्वक संपीड़ित / स्ट्रीम करने का एक तरीका मिल रहा है ताकि उस CPU उपयोग को अधिक से अधिक रखा जा सके (जबकि कैश अक्षमता को कम करते हुए, निश्चित रूप से)।
विंडफाइंडर

4
किस्सा फिर से "धूल भरे लैपटॉप": मेरे मास्टर थीसिस प्रयोगों के लिए, मैंने एक धावक के रूप में एक 4-वर्षीय लैपटॉप का उपयोग किया है। लगभग 3 महीने के लिए 24/7 100% CPU उपयोग । उसके बाद, उक्त लैपटॉप को भूत को छोड़ने से पहले 4 साल के लिए सर्वर की भूमिका के लिए फिर से आरोपित किया गया (शायद पहले से ही क्षतिग्रस्त ग्राफिक्स के कारण)।
mikołak

15

विंडोज प्रोग्राम (winforms / WPF) हर समय उत्तरदायी रहना चाहिए। 100% सीपीयू संसाधनों का उपयोग करने वाली एक प्रक्रिया के एक भोले कार्यान्वयन के साथ यह सब आपके कार्यक्रम या यहां तक ​​कि आपके सिस्टम को सुस्त और लटका हुआ बनाने के लिए बहुत आसान है।

एक अच्छा कार्यान्वयन के साथ (उदाहरण के लिए: कम प्राथमिकता के साथ एक अलग धागा का उपयोग करें) यह एक समस्या नहीं होनी चाहिए।

आपको अपने सीपीयू को जल्द से जल्द तोड़ने की चिंता नहीं करनी चाहिए।


3
निश्चित रूप से दीर्घकालिक संगणना करने वाले कार्यक्रमों में संभवतया विनफॉर्म / wpf अनुप्रयोग नहीं होना चाहिए, बल्कि बिना UI के बैच की नौकरियां होनी चाहिए। यह उन्हें सरल बनाता है क्योंकि उन्हें उत्तरदायी UI थ्रेड के बारे में परवाह करने की आवश्यकता नहीं है और उन्हें कार्य शेड्यूलर और इस तरह लॉन्च करने की अनुमति देता है। यदि UI की आवश्यकता है, तो मैं अभी भी पूरी तरह से अलग प्रक्रिया में लांचर एप्लिकेशन की सिफारिश करूंगा (जो कि काफी आसानी से उत्तरदायी रह सकता है; यह बैच जॉब से स्टेटस मैसेज के लिए प्रतीक्षा को रोकने के लिए पर्याप्त है)।
जान हुडेक

15

आमतौर पर 100% सीपीयू का उपयोग करते हुए एक कार्यक्रम में कुछ भी गलत नहीं है, जबकि यह वास्तव में उपयोगी काम कर रहा है और अधिक महत्वपूर्ण किसी भी चीज़ से समय नहीं ले रहा है । यदि एक विशेष हार्डवेयर प्लेटफ़ॉर्म केवल उदाहरण के लिए 100% CPU का उपयोग करने में सक्षम है, तो इससे पहले कि वह ओवरहीटिंग से बचने के लिए 50% तक वापस थ्रॉटल करे, यह आमतौर पर एक एप्लिकेशन के लिए बेहतर होता है जिसमें प्रदर्शन करने के लिए उपयोगी कार्य होता हैजितनी जल्दी हो सके इसे चलाने के लिए, और सीपीयू या ओएस को किसी भी आवश्यक थ्रॉटलिंग को संभालने दें, किसी एप्लिकेशन के लिए यह अनुमान लगाने के लिए कि यह कितनी तेजी से "चलना" चाहिए। यदि किसी एप्लिकेशन या थ्रेड में निम्न-प्राथमिकता वाले कार्य करने होते हैं, जो उपयोगी तो होंगे, लेकिन हर समय महत्वपूर्ण नहीं होंगे, तो यह OS के लिए निम्न-प्राथमिकता वाले कार्य CPU उपयोग को 50% तक सीमित करने में सहायक हो सकता है, ताकि यदि CPU को करना हो जल्दी से यह एक दूसरे के लिए "स्प्रिंट" करने के लिए तैयार हो जाएगा, लेकिन आवेदन को कम धागा प्राथमिकता का अनुरोध करने से परे ऐसी चीजों के बारे में चिंता नहीं करनी चाहिए।

सबसे बड़ी स्थितियों में जहां 100% सीपीयू का उपयोग करना बुरा होता है:

  • आवेदन कुछ घटना के लिए व्यस्त है, जो लगातार मतदान से जल्दबाजी में नहीं होने वाला है [और वास्तव में देरी हो सकती है अगर प्रयास बर्बाद हो जाता है कि क्या कार्य किया जाता है सीपीयू संसाधनों पर कब्जा होता है जो अन्यथा कार्य करने में खर्च हो सकते हैं ]।

  • एप्लिकेशन को प्रदर्शन को अत्यधिक बार फिर से दिखाया जाता है। "अत्यधिक अक्सर" की परिभाषा प्रदर्शन डिवाइस की प्रकृति और दिखाए जा रहे सामग्री पर कुछ माप पर निर्भर करेगी। यदि डिस्प्ले हार्डवेयर 120fps को प्रदर्शित कर सकता है, तो ऐसे मामले भी हो सकते हैं जहाँ एनीमेशन को गति धुंधला जोड़कर 120fps पर दिखाया जा सकता है, लेकिन इसे जोड़े बिना इसे निचले फ्रेम दर पर सफाई से नहीं दिखाया जा सकता है। अगर मोशन ब्लर के साथ एक फ्रेम रेंडर करने के बिना इसे रेंडर करने में अधिक समय लगेगा, तो हार्डवेयर पर 120fps पर रेंडर करना जो इसे सपोर्ट करता है, मोशन ब्लर के साथ धीमे फ्रेम रेट पर रेंडर करने की तुलना में वास्तव में अधिक महंगा नहीं हो सकता है। [सरल स्थिति: 29 प्रवक्ता के साथ एक पहिया, प्रति सेकंड एक क्रांति पर घूम रहा है। 120fps पर, पहिया उचित गति और दिशा के साथ घूमता दिखाई देगा; 60fps पर,

पूर्व स्पष्ट रूप से खराब के रूप में पहचानने योग्य है। दूसरा थोड़ा और सूक्ष्म है। यदि कोई मोबाइल प्लेटफ़ॉर्म को लक्षित कर रहा है, तो कुछ मामलों में यह वांछनीय हो सकता है कि उपयोगकर्ताओं को वांछित एनीमेशन फ्रेम दर का चयन करने की अनुमति दी जाए, क्योंकि कुछ उपयोगकर्ता बैटरी जीवन के बारे में चिंतित नहीं हो सकते हैं, लेकिन सर्वोत्तम गुणवत्ता एनीमेशन चाहते हैं, जबकि अन्य कम गुणवत्ता को स्वीकार करेंगे। बेहतर बैटरी जीवन के बदले में एनीमेशन। आवेदन होने के बजाय यह अनुमान लगाने की कोशिश करें कि व्यापार बंद कहां होना चाहिए, यह उपयोगकर्ता को इसे अनुकूलित करने में मददगार हो सकता है।


10

"आधुनिक सीपीयू सस्ते हैं और 100% सीपीयू में जल्दी से खराब हो जाएंगे"।

मुझे नहीं लगता कि किसी ने वास्तव में इस प्रश्न के "नीचा" हिस्से को संबोधित किया है। जब मरने का तापमान निर्माता की सीमा से अधिक हो जाता है तो आईसीएस नीचा दिखाएगा । आईसीएस को आमतौर पर 125C तक संचालित करने के लिए डिज़ाइन किया जाता है, हालांकि हर 10C में 50% की कमी होती है

प्रोसेसर में हमेशा थर्मल विनियमन नहीं होता है। तब कुछ एएमडी डूरों ने समस्याओं का अनुभव किया (कथित तौर पर एक को नष्ट करना संभव था, अगर बिना हीट सिंक के)। अब सभी पीसी प्रोसेसर में बिलियन टेम्परेचर सेंसर होंगे जो सीपीयू घड़ी में वापस फीड होंगे, और नुकसान को रोकने के लिए घड़ी को धीमा कर देंगे। तो आपको लग सकता है कि आपका प्रोग्राम उपलब्ध CPU का 100% उपयोग कर रहा है लेकिन सीपीयू केवल 75% अपनी रेटेड गति पर चल रहा है क्योंकि इसकी कूलिंग अपर्याप्त है।

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

Windows और Linux दोनों में CPU "govenor" सिस्टम है जो प्रदर्शन और थर्मल प्रबंधन करेगा। क्योंकि यह ओएस स्तर पर किया जाता है, यह कुल सिस्टम सीपीयू खपत के लिए जिम्मेदार हो सकता है। यह ऑपरेटिंग सिस्टम की ज़िम्मेदारी है कि वह हार्डवेयर का प्रबंधन करे और यूज़र प्रोग्राम्स का गलत इस्तेमाल होने से रोके। प्रशंसकों को साफ रखने और काम करने के लिए हार्डवेयर मालिक की जिम्मेदारी है , और निर्माता पहले स्थान पर पर्याप्त हीट सिंक और प्रशंसकों को फिट करने के लिए।

ऐसे कुछ मामले हैं जहां उपकरणों की अपर्याप्त शीतलन होती है, लेकिन रिटर्न की बाढ़ निर्माताओं को ऐसा नहीं करने की सीख देती है।


एएमडी ड्यूरन के विस्फोट का वह वीडियो संभवतः नकली है। थर्मल विनियमन के बारे में आपका बयान अभी भी मान्य है।
सैम

1
हम्म, मैंने इसे निकाल लिया है क्योंकि मैं Google पर बहुत सारे दावे देख सकता हूं कि यह नकली था।
pjc50

3
SSE इंजन को धक्का देकर और जानबूझकर OS में CPU थ्रॉटलिंग को अक्षम करने वाला कोड लिखकर एक आधुनिक Intel Core CPU को गर्म करना संभव है। ऐसा लगता है कि निर्माता (यहां तक ​​कि स्वयं इंटेल) भी इस धारणा के आधार पर थर्मल आवश्यकताओं को डिजाइन करते हैं कि यह सीपीयू को हर समय दावा किए गए 4 फ्लॉप प्रति घड़ी चक्र की गणना करने के लिए सामान्य (संभव?) नहीं है। जब कोई वास्तव में कोड लिखने का प्रबंधन करता है तो क्या यह उसका सीपीयू ओवरहीटिंग शुरू कर देता है। देखें: stackoverflow.com/questions/8389648/…
slebetman

^ "कथित तौर पर एक को नष्ट करना संभव था, अगर बिना हीटस्किन के चलाएं" - मैंने "व्यक्तिगत रूप से पुष्टि की है" यह पहले के 7 को बिना हीट के नष्ट करना संभव था .. ; ऐसा ही है, लगभग 2 दशक पहले !!
user2864740

3

शैतान के वकील की भूमिका निभाने के लिए: एक तरह से, एक कार्यक्रम जो 100% उपयोग तक नहीं पहुंच सकता है, वह खराब पहनने का कारण बन सकता है: जब तक किस्टस्ट्रोक के इंतजार में इसे निलंबित नहीं किया जाता है, संभावना है कि यह डिस्क I / O के इंतजार में निलंबित हो जाता है। और डिस्क हैं (अभी भी आम तौर पर) बड़े यांत्रिक उपकरण जो यांत्रिक पहनने या सदमे / जाइरोस्कोपिक प्रभावों के जोखिम के अधीन हैं जब वे चलते हैं, तो बिजली की खपत का उल्लेख नहीं करना।


इस मामले में यह एक बड़ी (इन-मेमोरी) डेटासेट पर एक जटिल प्रक्रिया है, जिसमें कुछ मिनट लगते हैं। लेकिन यह निश्चित रूप से अन्य पाठकों के लिए एक अच्छा बिंदु है।
निक उदेल

3

"..मॉडर्न सीपीयू सस्ते होते हैं और 100% सीपीयू में जल्दी खराब हो जाते हैं"।

आपको "CPU गिरावट" के बारे में बिल्कुल भी चिंता करने की आवश्यकता नहीं है। आधुनिक सीपीयू पूर्व की तुलना में कम गुणवत्ता वाले नहीं हैं।

यह सीपीयू बनाने के लिए बहुत महंगा है (और हर साल कुछ अधिक महंगा हो रहा है), एक नया फैब बनाने के लिए कुछ बिल असामान्य नहीं हैं (लिंक देखें)।

http://en.wikipedia.org/wiki/Semiconductor_fabrication_plant

सीपीयू की उत्पादन लागत सबसे अधिक संख्या पर निर्भर करती है। उत्पादित इकाइयों की। यह अर्थव्यवस्था में एक प्रसिद्ध तथ्य है। यही कारण है कि उन्हें बेचा जा सकता है (अपेक्षाकृत) सब के बाद "सस्ता"। (मुझे लगता है, यहाँ कोई लिंक आवश्यक नहीं)

मैं कई कारणों की सूची दे सकता हूं कि मैं आधुनिक सीपीयू को "पूर्व समय" की तुलना में अधिक गुणवत्ता वाला क्यों मानता हूं।

लेकिन केवल सबसे महत्वपूर्ण: परीक्षण में लाभ। आधुनिक इलेक्ट्रॉनिक्स "परीक्षण के लिए डिज़ाइन किए गए" हैं। चाहे सॉफ्टवेयर हो या हार्डवेयर, लगभग सभी चीजों पर मूल्य निर्धारण परीक्षणों की व्यापक अंतर्दृष्टि, इतनी पुरानी नहीं है। सीपीयू के लिए, परीक्षण अलग-अलग मूल्य और आवृत्ति प्रकार बनाने के लिए भी किए जाते हैं, उदाहरण के लिए सबसे अच्छा सीपीयू उच्चतम आवृत्तियों के साथ बेचा जाता है। इसके बावजूद, सस्ता प्रोसेसर अक्सर बिकने की तुलना में उच्च आवृत्ति के साथ संचालित करने में सक्षम होते हैं- वे केवल इस कारण से अपंग हो जाते हैं कि निर्माता कुछ "उच्च स्तर" प्रोसेसर को उच्च कीमतों के साथ बेचना चाहता है।

(एक तरफ, बेशक एक प्रोसेसर के लिए 1.5 अरब से अधिक ट्रांजिस्टर के साथ सामान्य रूप से अधिक त्रुटियां संभव हैं, आजकल सत्तर के दशक के कुछ हजार ट्रांजिस्टर के साथ सामान्य हैं। लेकिन यह मेरे उत्तर आईएमओ के विपरीत नहीं है। सामान्य तौर पर प्रोसेसर) हो जाते हैं कई कम से कम माइक्रोकोड में, ज्ञात त्रुटियों, लेकिन इस विषय पर यहाँ नहीं है।)

आपके प्रोग्राम के लिए CPU डीग्रेडेशन के बारे में चिंता न करने के और भी कारण हैं:

  • पहला कारण यह है कि आधुनिक सीपीयू उनकी आवृत्ति या थ्रोटल को कम कर देते हैं, अगर वे बहुत गर्म हो रहे हों।

    यह स्पष्ट होना चाहिए कि यदि आप सीपीयू का उपयोग 100% 24/7 पूरे वर्ष करते हैं तो यह सामान्य रूप से सीपीयू की तुलना में पहले ही मर जाएगा। लेकिन यह सच है कि कारों के लिए, वैसे भी। केवल ऐसे मामलों में मैं सीपीयू के उपयोग के बारे में सोचूंगा और संभावित खुद सो जाएगा।

  • दूसरा कारण यह है कि एक प्रोग्राम लिखना बहुत मुश्किल है जो ओएस से 100% सीपीयू का उपयोग करता है, (जैसे विंडोज में)। इसके अलावा, आधुनिक सीपीयू (सामान्य रूप से) में कम से कम 2-4 कोर होते हैं। तो एक पारंपरिक एल्गोरिथ्म जो सिंगल कोर सीपीयू के 100% का उपयोग करता है, अब दोहरे कोर सीपीयू पर केवल 50% (सरलीकृत लेकिन वास्तविक परिदृश्य में देखा गया) है।

  • इसके अलावा ऑपरेटिंग सिस्टम का सीपीयू पर नियंत्रण है, न कि आपके प्रोग्राम पर, इसलिए यदि समान या उच्च प्राथमिकता वाले अन्य एप्लिकेशन हैं (क्या डिफ़ॉल्ट है), तो आपका प्रोग्राम केवल यथासंभव सीपीयू प्राप्त कर रहा है, लेकिन अन्य एप्लिकेशन नहीं होंगे भूखा। (बेशक यह केवल सरलीकृत सिद्धांत है, और निश्चित रूप से विंडोज, लिनक्स और अन्य की मल्टीटास्किंग सही नहीं है, लेकिन कुल मिलाकर मैं इसे सच मानूंगा)।

"मैं पहले इस धारणा के तहत था कि 100% सीपीयू का उपयोग एक गहन या लंबे ऑपरेशन के लिए बेहतर था।"

हां, इसके साथ रहें। लेकिन उदाहरण के लिए, यदि आप किसी अन्य प्रक्रिया के लिए प्रतीक्षा और लूपिंग करते हैं, तो दूसरे शब्दों में कुछ भी नहीं कर रहे हैं, तो यह बहुत बुरा नहीं होगा यदि आप थ्रेड। सो () उस लूप में कुछ मिलीसेकेंड, दूसरों को अतिरिक्त समय दे रहे हैं। जबकि एक अच्छे मल्टीटास्किंग ओएस के लिए यह आवश्यक नहीं है, मैंने इसके साथ कुछ मुद्दों को हल किया जैसे कि विंडोज 2000 के लिए। (उदाहरण के लिए गणना में स्लीप का उपयोग करने के लिए इसका कोई मतलब नहीं है)।


3
हालांकि यह जवाब आज सच है, भविष्य के लिए चिंता का विषय है। यह हुआ करता था कि "ठोस राज्य" का मतलब अत्यधिक विश्वसनीयता था, लेकिन अब हमारे पास एमएलसी फ्लैश है जो कुछ मामलों में केवल ब्लॉक प्रति 1000 मिटा चक्र के लिए मूल्यांकन किया गया है। कब तक सिकुड़ते हुए आकार सीपीयू के लिए एक समान घटना उत्पन्न करते हैं जो लगातार 100% चलाने की आवश्यकता होती है?
माइकल

2
@ मिचेल, सीपीयू हालांकि म्यूट नहीं कर रहे हैं, और वे अस्थिर स्मृति के लिए लिखते हैं - लेकिन फिर भी मैं समझता हूं कि आप जो कहना चाह रहे हैं।
पीटर

3

इस तरह की गिरावट सैद्धांतिक रूप से संभव है और इसे " विद्युत-प्रवासन " कहा जाता है । तापमान के बढ़ते ही विद्युत-संचार तापमान पर निर्भर होता है। क्या यह बहस के लिए आधुनिक सीपीयू के लिए एक व्यावहारिक समस्या है। आधुनिक वीएलएसआई डिजाइन प्रथाओं विद्युत चुम्बक के लिए क्षतिपूर्ति करते हैं और चिप्स अन्य कारणों से विफल होने की अधिक संभावना है।

यह कहते हुए कि, विद्युत- प्रवाह सामान्य भार और तापमान पर भी होता है , लेकिन यह इतना धीमा है कि एक अच्छी तरह से डिज़ाइन की गई चिप या तो विफल होने से पहले अप्रचलित हो जाती है, या पहले किसी अन्य तंत्र के माध्यम से विफल हो जाती है।

विद्युतचुम्बकीय की दर चिप तापमान पर निर्भर करती है, जीवनकाल के साथ हर (बहुत मोटे तौर पर) 10 ° C के लिए दोहरीकरण। यह वास्तव में, "एचटीओएल" (उच्च तापमान ऑपरेटिंग जीवन) नामक एक परीक्षण का आधार है, जो मापता है कि एक चिप को मरने में कितना समय लगता है, कहते हैं, 125 डिग्री सेल्सियस। 125 ° C पर चलने वाली चिप 55 ° C पर चलने वाली चिप की तुलना में लगभग 100 गुना तेजी से विफल होगी, इसलिए यदि 55 ° C पर कम से कम 10 वर्षों तक चलने के लिए डिज़ाइन किया गया, तो 125 ° C पर 1 महीने के भीतर एक चिप विफल हो सकती है। यदि 85 ° C जैसी किसी और चीज पर चलना उचित है, तो इस तरह की चिप अभी भी कम से कम 5-10x फेल होगी, जितनी कि इसके लिए तैयार की गई थी।

बेशक, सीपीयू आमतौर पर उच्च तापमान को ध्यान में रखते हुए डिजाइन किए जाते हैं, इसलिए वे आम तौर पर 85 ° C 24/7 100% लोड ऑपरेशन पर वर्षों तक रह सकते हैं। इसलिए मैं आपको सुझाव दूंगा कि आप सीपीयू को "खराब" करने के बारे में चिंता न करें, और केवल इस बात की चिंता करें कि सॉफ्टवेयर इंजीनियरिंग के नजरिए से 100% लोड उचित है या नहीं।


उस शब्द को खोजने से कई परिणामों के साथ एक खोज होती है जो एसई नेटवर्क में अच्छे से पढ़ रहे हैं ... जिनमें से कई इलेक्ट्रॉनिक्स में हैं। एसई और सुपरयूजर।

1

यदि आप क्लाइंट पर अपना कोड चला रहे हैं, तो 100% CPU उपयोग का अर्थ है कि उस समय में क्लाइंट कंप्यूटर का उपयोग किसी और चीज़ के लिए नहीं बल्कि उच्च प्राथमिकता वाले कार्यों के लिए किया जा सकता है। जैसा कि अधिकांश एप्लिकेशन आमतौर पर डिफ़ॉल्ट प्राथमिकता में चलते हैं, उन कंप्यूटरों का उपयोग करने वाले उपयोगकर्ता कंप्यूटर को फ्रीज करने की सूचना देंगे और अपने कंप्यूटर पर अन्य कार्य करने में असमर्थ होंगे। यहां तक ​​कि अगर हम छोटी फटने के बारे में बात कर रहे हैं, तो कुछ पर काम करने वाले उपयोगकर्ता अभी भी इसे नोटिस करेंगे।

जैसा कि दूसरों ने कहा, आप सेटअप के बारे में बहुत गुप्त थे, इसलिए मैं निश्चित रूप से नहीं कह सकता। लेकिन, यदि आपके ग्राहक डेस्कटॉप कंप्यूटर हैं, तो 100% CPU उपयोग से दूर रहें। सीपीयू की गिरावट के कारण नहीं, बल्कि इसलिए कि यह उनके काम के दौरान उपयोगकर्ताओं को बाधित करने के लिए अच्छा रूप नहीं है।


6
विंडोज इस तरह से काम करता है। लिनक्स में और कई अन्य सिस्टम थ्रेड्स जो कुछ (उपयोगकर्ता इनपुट) पर इंतजार करते थे, अपने आवंटित समय का उपयोग करके थ्रेड्स पर स्वचालित रूप से प्राथमिकता प्राप्त करते हैं, इसलिए जब आप प्राथमिकताओं के साथ नहीं खेलते हैं तो इंटरेक्टिव प्रोग्राम भी उत्तरदायी रहते हैं।
Jan Hudec

2
@JanHudec विंडोज वास्तव में ऐसा करता है। superuser.com/questions/194223/…
NtscCobalt

@NtscCobalt: हाँ। स्पष्ट रूप से विंडोज सीई नहीं है। जब भी कोई प्रक्रिया डिस्क पर भारी होती है, तो विंडोज की गंभीर समस्याएं होती हैं, लेकिन यह स्पष्ट रूप से कुछ अलग है (डिस्क हैंडलिंग सामान्य रूप से विंडोज में खराब है)।
Jan Hudec

1

तो स्थिति यह है: आपके पास कुछ कोड हैं जो सभी सीपीयू के 100% का उपयोग करके पांच घंटों के लिए कहते हैं, जो कि आप जितना संभव हो उतना अनुकूलित किया जाता है, मशीन का मालिक पांच घंटे तक मशीन के बेकार होने के साथ ठीक है, और आपका सहयोगी दावा है कि सभी CPU के 83.33% का उपयोग करके 6 घंटे में अपना कोड चलाना बेहतर होगा, क्योंकि यह कंप्यूटर पर कम पहनते हैं और फाड़ देते हैं।

यह उस कंप्यूटर पर निर्भर करता है जिसका आप उपयोग कर रहे हैं। मुझे पता है कि एक कंप्यूटर निर्माता ने सस्ते होम कंप्यूटरों पर वारंटी समय के भीतर वारंटी मरम्मत से इनकार कर दिया था जो कि 24/7 चल रहे वैज्ञानिक सेटिंग में उपयोग किया गया था। वे स्पष्ट रूप से चाहते थे कि ग्राहक अपने अधिक महंगे सर्वर या "व्यवसाय" कंप्यूटर खरीदें। वे सफल थे या नहीं, मुझे नहीं पता।

हर मैक जो मेरे स्वामित्व में है वह अपने जीवन चलाने के कोड में कुछ समय के लिए 100% सीपीयू उपयोग के समय पर होता है। एक मामले में मुझे डिस्प्ले बंद करना पड़ा, क्योंकि मेरे पास एक लैपटॉप के लिए मूल चार्जर नहीं था, और 4 कोर और हाइपर थ्रेडिंग के साथ आपूर्ति किए गए चार्जर की तुलना में अधिक शक्ति का उपयोग किया - इसलिए बैटरी नीचे चली गई, और जब यह पहुंच गया 5 प्रतिशत कंप्यूटर ने घड़ी की गति को धीमा कर दिया जब तक कि बैटरी 10% तक नहीं हो गई! (डिस्प्ले बंद होने के साथ यह कई दिनों तक पूरी गति से चलता रहा)। किसी भी मामले में, कोई भी बुरा प्रभाव नहीं।

तो एक अच्छी तरह से डिज़ाइन किए गए कंप्यूटर के साथ, आप सही हैं। एक बुरी तरह से डिज़ाइन किए गए सस्ते कंप्यूटर के साथ, आपका सहयोगी सही हो सकता है। दूसरी ओर, आप अपने प्रतीक्षा समय की लागत बनाम प्रतिस्थापन कंप्यूटर खरीदने की लागत पर विचार कर सकते हैं।


0

यदि आप कर सकते हैं, तो अपने कोड को एक कम प्राथमिकता वाला कार्य बनाएं, और सीपीयू-भारी धागे को जीयूआई से अलग रखना सुनिश्चित करें। तब आपके पास 100% उपयोग हो सकता है, लेकिन उपयोगकर्ता अभी भी अन्य कार्यों को चला सकता है और उत्तरदायी रह सकता है। अपने आप से, एक CPU को कुछ समय के लिए 100% उपयोग में रहने के लिए डिज़ाइन किया गया है, या यह जारी नहीं किया जाएगा। जब तक अंत उपयोगकर्ता ने अपने हार्डवेयर में गंभीर और खतरनाक संशोधन नहीं किए हैं, तब तक आप कुछ भी नुकसान नहीं पहुंचा सकते।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.