اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

سرعت اجرای محاسبات روی داده‌های صحیح مختلف

0 امتیاز
334 نمایش

سرعت اجرای محاسبات روی داده‌های صحیح از انواع short، int و long چقدر با هم متفاوته؟ چطوری باید تصمیم بگیریم از کدوم استفاده کنیم بهتره؟

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پرسیده شده سه شنبه ۱۳ فروردین ۱۳۹۲ در C++ توسط prodo  
بازتگ شده سه شنبه ۱۸ تیر ۱۳۹۲

1 پاسخ

0 امتیاز

بیشترین صرعت اجرا روی داده‌های صحیح مربوط به داده‌ای هست که اندازه‌ش هم‌اندازه‌ی کلمه (word) پردازنده باشه. مثلاً اگه پردازنده ۳۲ بیتی باشه و short داده ۱۶ بیتی، int داده ۳۲ بیتی و long داده ۶۴ بیتی باشه سرعت اجرای int به صورت پیش‌فرض بالاتر از همه هست.

در این حالت برای افزایش سرعت انجام عملیات long کاری نمی‌شه کرد مگه این‌که در پیاده‌سازی اندازه‌ش رو اندازه‌ی کلمه یا همون int بگیریم.

برای افزایش سرعت عملیات short دو تا راه‌حل داریم. اولی مشابه همون راه‌حل ۳۲ بیتی در نظر گرفتن که در مورد long هم قابل اعمال هست. دومی راه‌حلی که در مورد long قابل اعمال نیست و اون این که عدد صحیح رو در ۳۲ بیت قرار بدیم اما همیشه از ۱۶ بیت اون استفاده کنیم. این کار توسط padding در پیاده‌سازی‌ها انجام می‌شه.

یه راه خوب هم استفاده از انواع صحیح int_fast[n] هست مثل int_fast8 و int_fast16.

int-fast[n] پرسرعت‌ترین (کاراترین) داده‌ی صحیحی هست که حداقل n بیت داره.

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده جمعه ۷ تیر ۱۳۹۲ توسط prodo