2010-11-19 17 views
9

सहित एक प्रोसेसर (सीमित) संसाधनों को अनुकरण करना मुझे एक सॉफ्टवेयर वातावरण चाहिए जिसमें मैं विशिष्ट संसाधनों के साथ हार्डवेयर पर अपने सॉफ़्टवेयर की गति का परीक्षण कर सकता हूं। उदाहरण के लिए, यह प्रोग्राम 800 एमएचजेड x86 पर 24 एमबी रैम के साथ कितनी तेजी से चलता है, जब मेरा होस्ट हार्डवेयर 12 जीबी रैम के साथ 3GHz क्वाड कोर amd64 है? क्यूमु जैसे अनुकरणकर्ता अंतर्निहित हार्डवेयर के रूप में "लगभग तेज़" चलने का एक बड़ा बिंदु बनाते हैं; मैं इसे धीमा करना चाहता हूं। क्या ऐसा करने के लिए कोई रास्ता है?घड़ी की गति

+0

मैं सुनिश्चित नहीं हूं प्रोसेसर की गति के बारे में, लेकिन आप निश्चित रूप से वर्चुअलबॉक्स, समांतर डेस्कटॉप इत्यादि जैसे वीएम का उपयोग करके रैम को नियंत्रित कर सकते हैं –

+0

हाँ, मुझे लगता है कि स्मृति समस्या नहीं है; समस्या गति और अन्य संसाधन है। मैं phrasing में शामिल हो रहा हूँ क्योंकि मैं चाहता हूं कि यह हर तरह से वास्तविक हार्डवेयर की तरह हो। मैं उम्मीद कर रहा था कि एक तैयार समाधान था, लेकिन स्पष्ट रूप से ऐसा नहीं है, इसलिए मैं इसे टुकड़े से टुकड़ा कर दूंगा। – Liam

उत्तर

0

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

+0

यह मुश्किल लगता है। मुझे यकीन नहीं है कि यह मेजबान या अतिथि ओएस में लागू किया जाएगा, लेकिन मुझे नहीं लगता कि मेरे पास ऐसा करने का कौशल है। – Liam

+0

@Liam: इसके अलावा, आपको "महसूस" नहीं होगा कि यह कितना धीमा या तेज़ है, यदि आप मूल्यांकन कर रहे हैं तो यह महत्वपूर्ण होगा। एक डेस्कटॉप अनुप्रयोग या अन्य इंटरैक्टिव सॉफ्टवेयर। मल्टीमीडिया अनुप्रयोगों का भी परीक्षण करना मुश्किल होगा। – thkala

2

मैं इसे करने की कोशिश कभी नहीं किया है, लेकिन शायद आप प्राप्त कर सकते थे कि तुम क्या कुछ हद तक चाहते हैं कुछ इस तरह के साथ लिनक्स पर QEMU या VirtualBox की तरह एक एमुलेटर के संयोजन के द्वारा:

http://cpulimit.sourceforge.net/

आप को सीमित कर सकते हैं एमुलेटर के लिए उपलब्ध CPU समय आप धीमे कंप्यूटर पर निष्पादन के परिणामों को अनुकरण करने में सक्षम हो सकते हैं। ध्यान रखें, हालांकि, यह केवल निष्पादन गति को प्रभावित करेगा (या तो मुझे उम्मीद है, वैसे भी)।

सीपीयू निर्देश सेट और अन्य सिस्टम सुविधाएं अपरिवर्तित बनी रहेंगी। इसका मतलब यह है कि विशिष्ट प्रोसेसर को अनुकरण करना असंभव नहीं होगा यदि असंभव नहीं है।

इसके अलावा, cpulimit की तरह कुछ है, जो SIGSTOP और SIGCONT का उपयोग कर बार-बार बंद करने के लिए काम करता है का उपयोग करते हुए/पुनः आरंभ एमुलेटर प्रक्रिया ऐसे समय विसंगतियों, वीडियो प्रदर्शन कलाकृतियों आदि के रूप में दुष्प्रभाव, कारण हो सकता है

+0

यह दिलचस्प है; मुझे cpulimit के बारे में पता नहीं था। हालांकि यह एक पूर्ण समाधान नहीं है, यह मैं जो खोज रहा हूं उसका सबसे महत्वपूर्ण "गायब टुकड़ा" है, क्योंकि मुझे लगता है कि अधिकांश अनुकरणकर्ताओं में स्मृति सीमाएं पहले से ही सेट की जा सकती हैं। मुझे एहसास है कि मैं वास्तव में अन्य प्रोसेसर को अनुकरण नहीं करूँगा (जब तक कि क्यूमु विशेष रूप से x86 परिवार का विशिष्ट सदस्य नहीं कहता), लेकिन यह संभवतः मेरे उद्देश्यों के लिए पर्याप्त है। – Liam

+0

* cpulimit * काफी अच्छी तरह से काम करता है। ठीक है अतिथि ओएस अभी भी भौतिक सीपीयू गति प्रिंट करता है, लेकिन उपलब्ध गति cpulimit द्वारा निर्धारित है। जैसे 'cpulimit -l 5 -s qemu-system-i386 -cpu pentium -m 32 ' वास्तव में एक पेंटियम 166MHz अनुकरण करता है। धन्यवाद @ थकाला। – tuk0z

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