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