मेरी स्थिति
मैं एक सॉफ्टवेयर मॉड्यूल पेश कर रहा हूं, जिसे मैं विकसित कर रहा हूं और उसी कार्य के लिए अन्य मॉड्यूल के लिए इसके रनटाइम की तुलना करना चाहता हूं। मुझे इसके बारे में पता है रनटाइम प्रयोगों की कमियों के , लेकिन कृपया मान लें कि मेरे मामले में इसके आसपास कोई रास्ता नहीं है। (मैं सैद्धांतिक रूप से कुछ गुणों को घटा और कर सकता हूं, लेकिन यह हर चीज के लिए पर्याप्त नहीं है।)
बेंचमार्किंग के लिए मैं जिन विशिष्ट परिदृश्यों का उपयोग करना चाहता हूं, उनके दो पैरामीटर हैं: समस्या की जटिलता और एक यादृच्छिक बीज r जो विस्तृत समस्या को निर्धारित करता है। मुख्य रूप से मैं पर निर्भरता दिखाना चाहता हूं । प्रारंभिक जांच और सिद्धांत द्वारा जाना, रनटाइम पर का प्रभाव मामूली या नगण्य है। किसी एक कार्य को पूरा होने में अधिकतम दस मिनट लगते हैं।
वास्तविक प्रश्न
मैं ऐसे प्रयोगों को करने के लिए आमतौर पर स्वीकृत या प्रकाशित प्रक्रिया की तलाश कर रहा हूं या कम से कम आम नुकसान की सूची (आदर्श रूप से प्रकाशित)।
मैंने अब तक क्या पाया
कुछ भी तो नहीं। इंटरनेट खोजों से सभी तरह के असंबंधित परिणाम सामने आते हैं, लेकिन तब मैं सही शब्दावली का उपयोग नहीं कर सकता। कीवर्ड न्यूनतम सहित , जिसे मैं एक अच्छा मानक होना चाहता हूं (नीचे देखें), या तो मदद नहीं की।
मैं यह कैसे करूंगा
जहां तक संभव हो सके GUI अक्षम जैसे संभावित हस्तक्षेप करने वाले सॉफ्टवेयर के साथ एक ही मशीन पर सभी प्रयोग चलाएं।
परिदृश्यों के एक ही चयन के लिए सभी मॉड्यूल को विषय, यानी, एक ही और ।
प्रत्येक परिदृश्य के लिए, यादृच्छिक क्रम में एक दूसरे के बाद सीधे विभिन्न मॉड्यूल का परीक्षण करें। दूसरे शब्दों के साथ, विभिन्न मॉड्यूल पर लूप सबसे अंतरतम है। मशीन के प्रदर्शन की धीमी उतार-चढ़ाव (जैसे, तापमान में बदलाव के कारण) के कारण विभिन्न मॉड्यूल पर पूर्वाग्रह से बचना चाहिए। यादृच्छिक क्रम को ऐसे प्रभावों के माध्यम से पूर्वाग्रह से बचना चाहिए जैसे कैशिंग या एक मॉड्यूल हमेशा एक ही के बाद परीक्षण किया जाता है।
प्रत्येक , बेंचमार्क के रूप में विभिन्न बीजों के साथ कई परिदृश्यों पर न्यूनतम रनटाइम लें। यह मशीन के प्रदर्शन के कम समय के उतार-चढ़ाव के कारण अलग-अलग मॉड्यूल पर पूर्वाग्रह से बचना चाहिए जो कि व्यक्तिगत रन को असाधारण रूप से खराब बनाते हैं।