আমি int
একটি মান সঞ্চয় করতে একটি টাইপ ব্যবহার করছি । প্রোগ্রামটির শব্দার্থবিজ্ঞানের দ্বারা, মানটি সর্বদা খুব কম পরিসরে (0 - 36) পরিবর্তিত হয় এবং int
(ক নয় char
) কেবলমাত্র সিপিইউ দক্ষতার কারণে ব্যবহৃত হয়।
দেখে মনে হচ্ছে অনেকগুলি সংখ্যার গাণিতিক অপ্টিমাইজেশানগুলি এত ছোট সংখ্যার পূর্ণসংখ্যার উপর সম্পাদন করা যেতে পারে। এই পূর্ণসংখ্যার উপর অনেকগুলি ফাংশন কলগুলি "জাদুকরী" ক্রিয়াকলাপের একটি ছোট সেটে অনুকূলিত হতে পারে এবং কিছু ফাংশন এমনকি টেবিলের চেহারাতেও অনুকূলিত হতে পারে।
সুতরাং, এটি কি কমপাইলারকে বলা সম্ভব যে int
এটি সর্বদা সেই ছোট পরিসরে থাকে এবং সংকলকটির পক্ষে সেই অপটিমাইজেশন করা কি সম্ভব?
unsigned
প্রকারগুলি ব্যবহারের ক্ষেত্রে আপনার খুব কম লাভ হতে পারে কারণ সেগুলি সংকলকটির সাথে যুক্ত করার পক্ষে সহজ।
var value: 0..36;
।
int
এবং unsigned int
বেশিরভাগ সিস্টেমে -৪-বিট পয়েন্টার সহ সাইন- বা শূন্য-প্রসারিত হওয়া দরকার। মনে রাখবেন যে x86-64- তে, 32-বিট-এ অপারেশনগুলি শূন্য-প্রসারিত 64-বিটকে নিখরচায় নিবন্ধভুক্ত করে (সাইন ইনডেন্ড নয়, তবে স্বাক্ষরিত ওভারফ্লোটি অনির্ধারিত আচরণ, তাই সংকলক চাইলে কেবলমাত্র 64-বিট স্বাক্ষরিত গণিতটি ব্যবহার করতে পারে)। সুতরাং আপনি কেবল শূন্য-প্রসারিত 32-বিট ফাংশন আরগগুলির জন্য অতিরিক্ত নির্দেশাবলী দেখতে পাচ্ছেন, গণনার ফলাফল নয়। আপনি স্বাক্ষরযুক্ত স্বাক্ষরযুক্ত প্রকারের জন্য চাই।