مزیت سیستم های 64 بیتی به 32 بیتی - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

مزیت سیستم های 64 بیتی به 32 بیتی

+4 امتیاز
سلام.

چرا توصیه میشه که از سیستم های 64 بیتی به جای 32 بیتی استفاده کنیم. به جز آدرس 64 بیتی مزیت دیگری هم دارن به نظر شما؟

 

ممنون
سوال شده آذر 6, 1392  بوسیله ی hojat1 (امتیاز 875)   12 68 99
دوباره تگ گذاری شد آذر 7, 1392 بوسیله ی BlueBlade

3 پاسخ

+7 امتیاز
 
بهترین پاسخ

سیستم های 64 بیتی چون تعداد register ها دو برابر هستش شما داده های موقت را می تونید بجای حافظه توی register ها نگهداری کنید.

پارامترهای ارسالی بیشتری به تابع بجای ارسال به stack به register ها فرستاده میشوند.

سایز خود integer register ها هم 64 شده برنامه هایی که بتونن از این مزیت استفاده کنند سود کردن یعنی شما با همون کلاک حالا دیگه 64 بیت را بجای 32 بیت انتقال میدید یا پروسس می کنید.

زمان اشغال حافظه های بزرگ و آزاد کردن شون نسبت به 32 کاهش پیدا کرد چون خود malloc و free کلاک زیادی می برن.

البته معایب هم داره 64 به 32.

اشاره گرها و ارجاعات و عناصر پشته همگی 64 شدند ولی سایز cache cpu تغییر نکرده و نرخ پر شدنش نسبت به 32 بیتی 2 برابر شده پس قاعدتاً miss chashing زیادی هم خواهیم داشت

محاسبه آدرس حافظه برای متغیر های global و استاتیکی که بشتر از 4 gig باشند نیاز به دستورات بیشتری داره البته این قضیه تو windows و mac بیشتره تو linux کمتر.

پاسخ داده شده آذر 7, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
ویرایش شده شهریور 21, 1393 بوسیله ی BlueBlade
البته اخیرا در سیستم های لینوکس ساختاری به اسم x32 پایه گزاری شده که تقریبا همه ی خواص هر دو محیط رو با هم داره. https://wiki.debian.org/X32Port
منظور این هست که در حالت ۶۴ بیتی پارامتر های بیش تری به Stack ارسال می شن دیگه؟ نه همه ی پارامتر ها... درسته؟
آره همین طوره
+2 امتیاز
چون تعداد Register ها و اندازه ی اونها از سیستم های 32 بیت بیشتره .

برای مثال اگر شما گاهی نیاز داشته باشی یک کار رو با 2 تا Register که اندازه ی 32 بیت دارند انجام بدید رو تنها با یک Register به اندازه ی  64 بیت انجام میدید.
پاسخ داده شده آذر 7, 1392 بوسیله ی Ali Rahbar (امتیاز 4,240)   6 16 46
+1 امتیاز
به نظر من بزرگترین مزیت همان آدرسدهی است. برنامه های 64 بیتی می توانند از حافظه بسیار بیشتری استفاده کنند و تردهای بیشتری را شامل شوند (البته این مورد وابستگی زیادی به فضای  stack برنامه دارد). همانطور که مشخص است برنامه های 64 بیتی اگر به عنوان یک برنامه سروری باشد می تواند کارایی بسیار بالاتری را نسبت به یک برنامه 32 بیتی از خود نشان دهد.
پاسخ داده شده آذر 7, 1392 بوسیله ی r0lex (امتیاز 391)   1 1 9
...