मान लीजिए कि मैंने आरटीटीआई और रन-टाइम पॉलिमॉर्फिज्म (वर्चुअल फ़ंक्शन, वर्चुअल विरासत नहीं) के बिना सी ++ में एक प्रोग्राम लिखा है और कक्षाओं में निजी/संरक्षित सदस्य नहीं हैं, सी ++ विशिष्ट शीर्षलेख फ़ाइलों का भी उपयोग नहीं किया जाता है (यानी सी हेडर फाइलों का उपयोग किया जाता है: cstring
, cstdio
, ... string
, iostream
, ... के बजाय ...)।क्या एक सी ++ प्रोग्राम वास्तव में एक समान सी प्रोग्राम से धीमा है?
फिर मैं सी में एक समान प्रोग्राम लिखना चाहता हूं जो कार्यों का पहला तर्क प्रकार संबंधित struct
से मेल खाता है।
//C++ code
struct Custom
{
int a;
Custom() { }
void change() { }
~Custom() { }
};
int main()
{
Custom m; //init m
m.change();
//destroy m
}
/*C code*/
struct Custom
{
int a;
};
void custom_init(Custom* like_this) { }
void custom_change(Custom* like_this) { }
void custom_destroy(Custom* like_this) { }
int main()
{
Custom m;
custom_init(&m);
custom_change(&m);
custom_destroy(&m);
}
सी ++ प्रोग्राम समान सी कार्यक्रम (आम तौर पर) की तुलना में धीमी है:
उदाहरण के लिए? यदि हां, तो क्यों सी प्रोग्राम तेजी से हैं? मुझे पता है, सी ++ स्मृति प्रबंधन के लिए आरएआईआई डिजाइन पैटर्न का उपयोग करता है, क्या यह धीमी गति का कारण है?
मैंने सुना है कि कुछ लोगों ने कहा है कि सी प्रोग्राम तेजी से हैं ... क्यों?
संपादित करें: यह प्रश्न क्यों बंद है? मैं जानना चाहता था कि सी ++ कुछ अतिरिक्त करता है जिसे हमें जरूरत नहीं है, और यह प्रदर्शन को कैसे प्रभावित करता है (इसे धीमा कर देता है? तेज़? या कुछ नहीं?)।
उत्तर कंपाइलर/प्लेटफार्म/हार्डवेयर पर निर्भर करेगा। बस दोनों कार्यक्रमों, बेंचमार्क संकलित करें। इसके अलावा, कुछ मामलों में, गलती से स्क्रूअप का कारण अतिरिक्त गति के लायक नहीं हो सकता है। – SigTerm
बंद मत करो। हर बार किसी चीज की तुलना में नाराज न हों। मैं किसी को यह जानना चाहूंगा कि क्या ऐसी स्थिति है जहां यह मामला है। –
यह सुनकर कि आपने सी सी ++ से तेज है, क्योंकि वे दोनों के बीच की तुलना में एक तेज दृष्टि दोनों तेज हैं, वे मटर और सेम हैं। –