प्रयोगात्मक रूप से रनटाइम्स की तुलना करने के लिए कोई मानक है?


10

मेरी स्थिति

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

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

वास्तविक प्रश्न

मैं ऐसे प्रयोगों को करने के लिए आमतौर पर स्वीकृत या प्रकाशित प्रक्रिया की तलाश कर रहा हूं या कम से कम आम नुकसान की सूची (आदर्श रूप से प्रकाशित)।

मैंने अब तक क्या पाया

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

मैं यह कैसे करूंगा

  • जहां तक ​​संभव हो सके GUI अक्षम जैसे संभावित हस्तक्षेप करने वाले सॉफ्टवेयर के साथ एक ही मशीन पर सभी प्रयोग चलाएं।

  • परिदृश्यों के एक ही चयन के लिए सभी मॉड्यूल को विषय, यानी, एक ही और  ।nआर

  • प्रत्येक परिदृश्य के लिए, यादृच्छिक क्रम में एक दूसरे के बाद सीधे विभिन्न मॉड्यूल का परीक्षण करें। दूसरे शब्दों के साथ, विभिन्न मॉड्यूल पर लूप सबसे अंतरतम है। मशीन के प्रदर्शन की धीमी उतार-चढ़ाव (जैसे, तापमान में बदलाव के कारण) के कारण विभिन्न मॉड्यूल पर पूर्वाग्रह से बचना चाहिए। यादृच्छिक क्रम को ऐसे प्रभावों के माध्यम से पूर्वाग्रह से बचना चाहिए जैसे कैशिंग या एक मॉड्यूल हमेशा एक ही के बाद परीक्षण किया जाता है।

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


यह आपके तर्क को समझाने में मदद कर सकता है कि आप क्यों सोचते हैं "मेरे मामले में इसके आसपास कोई रास्ता नहीं है"। लेकिन निश्चित रूप से, शायद एक अलग प्रश्न और लिंक के रूप में क्योंकि यह प्रश्न पर्याप्त रूप से केंद्रित है।
अपिवात चनतविबुल

@ बेलिसका: मुझे बिल्कुल यकीन नहीं है कि आप मुझसे क्या चाहते हैं। मुझे एक अलग प्रश्न में प्रयोगात्मक दृष्टिकोण के लिए अपने तर्क की व्याख्या क्यों करनी चाहिए? इस बारे में मेरा कोई सवाल नहीं है।
Wrzlprmft

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

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

जवाबों:


2

CC McGeoch का "A Guide to Experimental Algorithmics" एक अच्छा संदर्भ है

  • एल्गोरिदम पर प्रयोग कैसे सेट करें,
  • परिणामों की व्याख्या और उपयोग कैसे करें, और
  • यदि आवश्यक हो तो और अधिक सार्थक परिणामों की ओर चलना।

2

प्रत्येक रन के लिए बीता समय के अलावा, उपयोगकर्ता और सिस्टम मोड के रिपोर्ट सेकंड, और कुल आईपी पैकेट, और कुल डिस्क I / Os, यदि केवल यह सत्यापित करने के लिए कि कुछ नंबर लगातार "कम" हैं और बीत चुके समय पर नगण्य प्रभाव पड़ता है।

पर https://wiki.freebsd.org/BenchmarkAdvice PHK और दूसरों अच्छा सलाह प्रदान करते हैं, जिनमें शामिल हैं

यह देखने के लिए कि आपके नंबर महत्वपूर्ण हैं, मिनिस्टैट का उपयोग करें। "आंकड़ों के लिए कार्टून गाइड" खरीदने पर विचार करें

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