C ++ 11 चालित शब्दार्थ का परिचय देता है, उदाहरण के लिए, उन परिस्थितियों में कोड प्रदर्शन में सुधार कर सकता है जहाँ C ++ 03 को कॉपी निर्माण या कॉपी असाइनमेंट करने की आवश्यकता होगी। यह लेख बताता है कि निम्नलिखित कोड 5x गति का अनुभव करता है जब C + 11 के साथ संकलित किया जाता है:
vector<vector<int> > V;
for(int k = 0; k < 100000; ++k) {
vector<int> x(1000);
V.push_back(x);
}
वैज्ञानिक कंप्यूटिंग के संदर्भ में C ++ 11 चाल शब्दार्थ का क्या प्रभाव है?
मैं इस सवाल में दिलचस्पी रखता हूं, सामान्य है, लेकिन अधिक विशेष रूप से मैं बूस्ट एलीमेंट कोड्स के लिए बूस्ट एलिमेंट कोड्स को बढ़ावा देने के लिए लिखा गया हूं, जो बूस्ट लाइब्रेरी का उपयोग करके लिखा गया है। मैंने अपने कुछ C ++ 03 कोड का बूस्ट संस्करण 1.47.0 का उपयोग करके परीक्षण किया है (जब से जारी नोट्स का उल्लेख है कि गतिमान शब्दार्थ 1.48.0 में पेश किए गए हैं) और संस्करण 1.53.0 को बढ़ावा देते हैं, लेकिन मैंने बहुत सुधार नहीं देखा। मुझे लगता है कि किसी भी बचत का अनुमान है कि boost::numeric::ublas::vector
/ के लिए कॉपी-कंस्ट्रक्शन नहीं किया जा सकता है matrix
और boost::function
ध्यान देने योग्य नहीं है क्योंकि सिस्टम मैट्रिक को हल करने के लिए कार्यभार का बड़ा हिस्सा बनता है।
संपादित करें: वास्तव में ऐसा लगता है कि चाल शब्दार्थ केवल के लिए लागू किया जाता है boost::function
( संस्करण 1.52.0 रिलीज नोट्स देखें )। चाल शब्दार्थों का कोई उल्लेख नहीं है boost::numeric
, मैंने सूत्रों को सुनिश्चित करने के लिए तैयार किया और कोई संदर्भ नहीं प्रतीत होते हैं।