কম্পিউটার টিউটোরিয়াল

সি++ প্রোগ্রামে i++ এবং ++i-র মধ্যে পারফরম্যান্স পার্থক্য কী?

i++ এবং ++i-এর ইফেক্টিভ রেজাল্ট একই। একমাত্র পার্থক্য হল i++ মানটি অ্যাসাইন করার পরে i-এর মান বাড়ায়, আর ++i-র জন্য, আগে মান বাড়ায় তারপর এর মান অ্যাসাইন করে। পার্থক্যটি নিচের কোডে দেখানো হয়েছে।

উদাহরণ কোড

#include<iostream> using namespace std; int main() {    int x = 3, y, z;    y = x++;    z = ++x;    cout << x << ", " << y << ", " << z;    return 0; }

আউটপুট

5, 3, 5

এখন প্রশ্ন আসে, যেহেতু তারা একই কাজ করছে কিন্তু ভিন্ন অর্ডারে, তাহলে কি কোনো পারফরম্যান্স ইস্যু আছে নাকি দুটো একই?

যথার্থত, এই অপারেশনগুলোর পারফরম্যান্স অনেকাংশে আন্ডারলাইং আর্কিটেকচার (underlying architecture) ওপর ডিপেন্ড করে। একটি মেমরিতে স্টোর করা মান ইনক্রিমেন্ট করা হচ্ছে, অর্থাৎ ভন-নিউম্যান বটলনেক (Von-Neumann bottleneck) মূলত উভয় ক্ষেত্রে লিমিটিং ফ্যাক্টর।

তবুও আমরা বলতে পারি ++i কিছুটা ফাস্টার i++-এর চেয়ে। i++ i-এর ভ্যালুর লোকাল কপি নেয় ইনক্রিমেন্ট করার আগে, যখন ++i কখনোই সেটা করে না। কখনো কখনো কম্পাইলার কোড অপ্টিমাইজ করে যদি সম্ভব হয়। কিন্তু সেই অপ্টিমাইজেশন সবসময় কার্যকর হয় না, বা সব কম্পাইলার এটি করে না।

  1. C++-এ 'struct' এবং 'typedef struct'-এর পার্থক্য

  2. C++-এ লিটারেল (Literal) এবং কনস্ট্যান্ট (Constant) এর পার্থক্য

  3. C++-এ প্রিফিক্স (Prefix) এবং পোস্টফিক্স (Postfix) অপারেটরের পার্থক্য

  4. C++-এ ++i এবং i++ এর পার্থক্য