সি ++ 11 মুভ শব্দার্থকগুলির পরিচয় করিয়ে দেয় যা উদাহরণস্বরূপ এমন পরিস্থিতিতে কোডের পারফরম্যান্সকে উন্নত করতে পারে যেখানে সি ++ 03 এর একটি অনুলিপি নির্মাণ বা অনুলিপি নিয়োগের প্রয়োজন হবে। এই নিবন্ধটি জানিয়েছে যে সি + 11 দিয়ে সংকলন করা হলে নিম্নলিখিত কোডটি 5x গতির অভিজ্ঞতা অর্জন করে:
vector<vector<int> > V;
for(int k = 0; k < 100000; ++k) {
vector<int> x(1000);
V.push_back(x);
}
বৈজ্ঞানিক গণনার প্রসঙ্গে সি ++ 11 সরানো শব্দার্থবিজ্ঞানের প্রভাব কী?
আমি এই প্রশ্নে আগ্রহী সাধারণ তবে আরও বিশেষভাবে আমি বুস্ট লাইব্রেরি ব্যবহার করে লিখিত সুনির্দিষ্ট এলিমেন্ট কোডগুলির জন্য শব্দার্থিক পদক্ষেপগুলিতে আগ্রহী। আমি বুস্ট সংস্করণ ১.4747.০ ব্যবহার করে নিজের কয়েকটি সি ++ 03 কোড পরীক্ষা করেছি (যেহেতু বুস্ট রিলিজ নোটগুলি মুভ শব্দার্থবিজ্ঞানের কথা 1.4.0 তে প্রবর্তিত হয়েছে) এবং বুস্ট সংস্করণ 1.53.0 ব্যবহার করেছি, তবে আমি খুব বেশি উন্নতি লক্ষ্য করিনি। আমি অনুমান করি যে boost::numeric::ublas::vector
/ এর জন্য অনুলিপি-নির্মাণ না করা matrix
এবং boost::function
যেহেতু সিস্টেম ম্যাট্রিকগুলি সমাধান করার ফলে কাজের চাপের বেশিরভাগ অংশ গঠন করা যায় না থেকে কোনও সঞ্চয়ই লক্ষণীয় নয়।
সম্পাদনা: বাস্তবে দেখে মনে হচ্ছে সরু শব্দার্থবিদ্যা কেবলমাত্র এর জন্য প্রয়োগ করা হয়েছে boost::function
( সংস্করণ 1.52.0 প্রকাশের নোট দেখুন )। পদক্ষেপের শব্দার্থবিজ্ঞানের কোনও উল্লেখ নেই boost::numeric
, আমি উত্সগুলি নিশ্চিত করে নিশ্চিত করেছিলাম এবং মনে হয় কোনও মূলসূত্র উল্লেখ নেই।