ठीक है, यहाँ मैं यही चाहता हूँ:कक्षा के तरीके वीएस कक्षा स्थिर कार्य वीएस सरल कार्यों - प्रदर्शन के अनुसार?
- मैं कई वास्तव में मांग की कार्यों लिखा है (ज्यादातर, आदि बिटमैप्स पर काम) के रूप में तेजी से संभव के रूप में
- अब होना है जो, चलो चलो भी इन कि उल्लेख कार्यों को प्रकार, या यहां तक कि चर के प्रकार से भी समूहीकृत किया जा सकता है जिस पर वे काम करते हैं।
- और यह बात है कि, एल्गोरिदम के बहुत कार्यान्वयन के अलावा, मुझे क्या करना चाहिए - तकनीकी दृष्टि से - गति को गड़बड़ न करने के क्रम में।
और अब, मैं निम्न परिदृश्यों पर विचार कर रहा हूँ:
- उन्हें के रूप में सरल कार्यों बनाएँ और बस तर्क के रूप में आवश्यक पैरामीटर भेजने
- ('समूह' के लिए एक कक्षा बनाएं/संगठन उद्देश्यों) और बस उन्हें स्थिर
- प्रकार के अनुसार वर्ग बनाएं, उदाहरण के लिए बिटमैप्स पर काम करने के लिए एक कक्षा बनाएं, (हर बिटमैप के लिए कि कक्षा का एक नया उदाहरण बनाने
Bitmap* myBitmap = newBitmap(1010);
जैसे, और उसके भीतरी तरीकों (जैसेmyBitmap->getFirstBitSet()
)
अब, इन तरीकों में से जो सबसे तेज है के साथ इस पर काम करते हैं? ? वहाँ वास्तव में सीधे सरल कार्य करता है और कक्षा-समझाया static
काम करता है, प्रदर्शन के लिहाज से किसी भी अन्य परिदृश्य है कि बेहतर होगा, जो मैं उल्लेख नहीं किया है के बीच कोई अंतर है
Sidenote:? मैं उपयोग कर रहा हूँ मैक ओएस एक्स 10 के लिए clang++
कंपाइलर। 6.8। (यदि इससे कोई फर्क पड़ता है)
प्रोफाइलिंग का प्रयास किया? –
यदि आप प्रदर्शन के बारे में वास्तव में चिंतित हैं, तो आपको अपने envrionment पर प्रस्तावित दोनों संस्करणों को प्रोफ़ाइल करना चाहिए। इस तरह आपको मेरे अनुमानों के बजाय एक अच्छा निदान मिलता है, जो यहां दिए गए उत्तरों आपको प्रदान करेंगे। –
@ लुचियानग्रिगोर + अलोकसेव ईमानदार होने के लिए, नहीं, मैंने कोई प्रोफाइलिंग परीक्षा नहीं चलाई है। हां, मुझे पता है कि कुछ चीजों को सटीक वातावरण के आधार पर निदान किया जाना बेहतर है, जिन पर वे चल रहे हैं; मुझे लगता है कि मुझे अपनी दुविधा के पीछे सिद्धांत के कुछ बिट्स पर कुछ राय चाहिए, मुझे याद आ रही है। * (उदाहरण के लिए, हालांकि मैंने इसे माना है, क्या एक वर्ग निर्माण और विधि कॉल एक साधारण फ़ंक्शन कॉल से तेज़ हो सकता है? फिर भी अनुमान लगा रहा है ... हालांकि मुझे लगता है कि मैं सही अनुमान लगा रहा हूं ...) * –