32 বিট সফ্টওয়্যার এবং 64 বিট সফ্টওয়্যার মধ্যে পার্থক্যটি পয়েন্টারগুলির আকার এবং সম্ভবত পূর্ণসংখ্যার নিবন্ধগুলির আকার। এটাই.
তার মানে আপনার প্রোগ্রামের সমস্ত পয়েন্টার দ্বিগুণ আকারের। এবং (কমপক্ষে একটি ILP32 / LP64 আর্কিটেকচারে) আপনার long
গুলি আকারের দ্বিগুণও । এটি সাধারণত অবজেক্ট কোডের আকারে প্রায় 30% বৃদ্ধি পায়। এই যে মানে …
- আপনার অবজেক্ট কোডটি ডিস্ক থেকে র্যামে লোড করতে ~ 30% বেশি সময় নেবে
- আপনার অবজেক্ট কোড মেমরিতে আরও ~ 30% বেশি জায়গা গ্রহণ করবে
- আপনি কার্যকরভাবে আপনার মেমরি ব্যান্ডউইদথকে (অবজেক্ট কোডের জন্য) ~ 20% দ্বারা কমিয়েছেন
- আপনি কার্যকরভাবে নির্দেশের ক্যাশের আকারটি 20% কমিয়েছেন
পারফরম্যান্সে এটি একটি অ-নেহাত নেতিবাচক প্রভাব ফেলে।
এটি করা কেবল তখনই বোধগম্য হয় যদি আপনি সেই "পারফরম্যান্স" কিনতে পারেন তবে সেই পারফরম্যান্সটি কোনওভাবে ব্যয় করতে হবে। মূলত, এটি করার দুটি উপায় রয়েছে: আপনি প্রচুর পরিমাণে 64 বিট ইন্টিজার গণিত করেন বা আপনার 4 জিবাইট ম্যাপযুক্ত মেমরির বেশি প্রয়োজন। যদি সেগুলির মধ্যে একটি বা উভয়ই সত্য হয় তবে 64৪ বিট সফটওয়্যারটি ব্যবহার করা বোধগম্য হয়, অন্যথায় এটি হয় না।
দ্রষ্টব্য: এমন কিছু আর্কিটেকচার রয়েছে যেখানে 32 বা 64 বিটের কোনও বৈকল্পিক নেই। সেক্ষেত্রে, প্রশ্নটি অবশ্যই স্পষ্টভাবে বোঝায় না। সর্বাধিক সুপরিচিত আইএ 64৪, যা কেবল 64৪ বিট এবং কোনও 32 বিট বৈকল্পিক রয়েছে এবং x86 / এএমডি 64 রয়েছে যা ঘনিষ্ঠভাবে সম্পর্কিত, বিভিন্ন আর্কিটেকচার, x86 কেবল 32 বিট, এএমডি 64 কেবল 64 বিট।
আসলে, সেই উত্তরোত্তর বিবৃতিটি এখন আর 100% সত্য নয়। লিনাক্স সম্প্রতি এক্স 32 এবিআই যুক্ত করেছে, যা আপনাকে 32 বিট পয়েন্টার সহ এএমডি 64 কোড চালানোর অনুমতি দেয়, সুতরাং এটি "যথাযথ" সিপিইউ আর্কিটেকচার না হলেও এটি AMD64 আর্কিটেকচারটি এমনভাবে ব্যবহার করার উপায় যা এটির একটি নেটিভ ছিল 32 বিটের বৈকল্পিক। এই অবিকল করা হয়েছিল কারণ কর্মক্ষমতা ওভারহেড আমি পূর্বেই উল্লেখ করা ঘটাচ্ছে ছিল বাস্তব বাস্তব-বিশ্বের সিস্টেমের মধ্যে বাস্তব-বিশ্বের কোড চালনাকারী বাস্তব-বিশ্বের ব্যবহারকারীদের জন্য পরিমাপযোগ্য, গণনীয় সমস্যা।