अपने कंप्यूटर को धीमा कैसे करें (परीक्षण प्रयोजनों के लिए)? [बन्द है]


20

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

एक टर्बोचार्ज्ड देव मशीन को अस्थायी रूप से धीमा करने के लिए कुछ अच्छे तरीके क्या हैं? "गति" की धारणा में कई कारक शामिल हैं, उदाहरण के लिए:

  • सीपीयू घड़ी आवृत्ति।
  • सीपीयू कोर की मात्रा।
  • मेमोरी और प्रोसेसर कैश की मात्रा।
  • विभिन्न बसों की गति।
  • डिस्क I / O।
  • GPU।
  • आदि।

34
"टर्बो बटन" को अनप्रेस करें ... नहीं, प्रतीक्षा करें।
लेन्नीप्रोग्रामर्स

6
यहां आपकी समस्या की जड़ है: "विचलित रूप से अक्षम"। अपने कोडिंग आदत बदल
Darknight

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

1
वैसे मैं आंशिक रूप से सहमत हूं। हालाँकि यदि आपके पास शुरू करने के लिए एक कुशल कोडिंग आदत है; तब जैसा कि आपका "यह सही काम कर रहा है" आप बाद में कम समय बिता सकते हैं।
अंधेरी

4
@ डार्कट: मुझे लगता है कि @ जून एक बहुत ही समझदार सवाल पूछ रहे हैं। यह विचार कि "केवल अपनी कोडिंग की आदत बदलना" पर्याप्त है, यथार्थवादी नहीं है। यहाँ एक उदाहरण दिया गया है: ( stackoverflow.com/questions/926266/… ) और, यह विचार कि आप इसे बिना किसी धीमी मशीन पर बस समय दे सकते हैं, बिना आईडीई मान लें कि प्रदर्शन बग ढूंढने के लिए पर्याप्त है। बहुत से लोग प्रोफाइलिंग के बारे में बात करते हैं, लेकिन ऐसा करना (सफलतापूर्वक) एक और मामला है। क्या सच में मेरी मदद करेगा (और मुझे लगता है कि अन्य) जूनास क्या पूछ रहे हैं।
माइक डनलवे

जवाबों:


39

एक वर्चुअल मशीन में सीमित मेमोरी और केवल एक कोर के साथ अपने परीक्षण चलाएं।

पुरानी मशीनें जो अब भी लोगों के पास हैं वे ज्यादातर पेंटियम 4 युग की हो सकती हैं। यह अवास्तविक नहीं है - मैं अभी एक का उपयोग कर रहा हूँ। कई मौजूदा पीसी पर एकल कोर प्रदर्शन सामान्य रूप से उतना बेहतर नहीं है, और इससे भी बदतर हो सकता है। RAM का प्रदर्शन वैसे भी कई चीज़ों के लिए CPU के प्रदर्शन से अधिक महत्वपूर्ण है, और एक पुराने 1GB P4 की तुलना में थोड़ा अधिक कठोर रूप से सीमित करके, आप उसके लिए थोड़ा सा भरपाई करते हैं।

यदि आप थोड़ा खर्च करने को तैयार हैं, तो एक नेटबुक खरीदें। उस पर परीक्षण चलाएं।


1
या एक लैडिश लैपटॉप।

आभासी मशीनों के साथ समस्या यह है कि उनमें से कोई भी (AFAIK) IEEE 1394 (फायरवायर) पोर्ट का समर्थन नहीं करता है। मेरे कुछ सॉफ्टवेयर कैमरों का उपयोग करते हैं जो कि फायरवायर से जुड़े होते हैं, इसलिए ...
जूनास पुलकका

असली लोगों को आप
Javier

3
Xen के लिए एक नौकरी हो सकती है - वर्चुअल मशीन में एक मेजबान O / S नहीं है, लेकिन यह अपने आप में शीर्ष परत है। एक भारी यूनिक्स इतिहास है, लेकिन अब मालिकाना OS का समर्थन कर सकते हैं। लेकिन मैंने इसका इस्तेमाल कभी नहीं किया, और आपको नहीं पता कि किसी विशेष VMs के प्रदर्शन और संसाधनों पर आपका कितना नियंत्रण हो सकता है।
स्टीव 314

1
+1 A VM अत्यधिक ट्यून करने योग्य है और परीक्षण के बाद आपके द्वारा प्रदत्त वातावरण प्रदान करता है। मैं इस उद्देश्य के लिए खुद VMWare का उपयोग करता हूं।
गैरी रोवे

11

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

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


1
नहीं, प्रोफाइलिंग एल्गोरिथम की अक्षमता को नहीं पकड़ेगी। यह आपको दिखाएगा कि जहां कार्यक्रम अपना समय बिता रहा है यदि आपको इसे गति देने की आवश्यकता है, लेकिन यदि आपको इसे गति देने की आवश्यकता नहीं है।
डेविड थॉर्नले

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

4
@ डेविड थॉर्नले और @Polemy: मुझे लगता है कि एल्गोरिथ्म अक्षमता या कोड हॉट स्पॉट मुख्य समस्या के लिए माध्यमिक हैं: "क्या यह बहुत धीमा है या नहीं?" यह व्यक्तिपरक है, लेकिन यह सबसे महत्वपूर्ण सवाल भी है। यदि यह अभ्यास में धीमा नहीं लगता है, तो यदि आपका एल्गोरिथ्म अक्षम है तो क्या होगा? यह वही करता है जो इसे करने की आवश्यकता है! या यदि प्रोग्राम अत्यधिक इष्टतम एल्गोरिदम की परवाह किए बिना बहुत धीमा लगता है, तो आपको दृष्टिकोण (आर्किटेक्चर? प्रोग्रामिंग लाइफ? कुछ!) को बदलना होगा। अत्यधिक इष्टतम एल्गोरिदम होने से प्रोग्राम सुस्ती का कोई बहाना नहीं है :-)
जूनस पुलका

1
एल्गोरिथ्म अक्षमता को प्रकट करने के लिए, परीक्षण के लिए उत्तरोत्तर आकार के डेटा सेट का उपयोग करें।
rwong

10

जो कुछ भी आप अपनी मशीन को धीमा करने के लिए करते हैं वह शायद एक हैक होगा।

यहाँ कुछ सुझाव दिए गए हैं:

  • आभासी मशीनों का उपयोग करें
  • अपनी मशीन पर कोड को प्रोफाइल करें, बाधाओं की तलाश में
  • "प्रदर्शन परीक्षण" के लिए एक पुरानी मशीन का उपयोग करें

@matt का क्या मतलब है?
जॉनी डेस

1
@ जॉनी: मेरा मतलब है कि मैं मतदान कर रहा हूं क्योंकि जेसन ने आवेदन को प्रोफाइलिंग करने का सुझाव दिया है, जो उम्मीद करता है कि धीमे सिस्टम में जाने की आवश्यकता के बिना प्रदर्शन बोतल गर्दन का स्रोत मिल जाएगा।
मैट एलेन


4

एहसास यह काफी पुराना सवाल है, लेकिन इस स्थिति में किसी और के लिए; आप CPUKiller की कोशिश कर सकते हैं। यह मूल रूप से एक छोटा सा ऐप है जिसे आप अपने प्रोसेसर के विभिन्न% का उपभोग करने के लिए कॉन्फ़िगर कर सकते हैं। http://www.cpukiller.com/

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