PDA

View Full Version : 64 بیت برای برنامه نویسی؟



حسین فلاحی
سه شنبه 22 تیر 1389, 14:52 عصر
سلام دوستان.

من می خوام ویندوز سون رو روی کامپیوترم نصب کنم.
1- 32بیت رو نصب کنم یا 64 رو؟

2- و اینکه در آینده بر روی برنامه هایی که قراره با این سیستم بنویسم تاثیر می ذاره یا ربطی نداره؟
یعنی برنامه ای که با این سیستم 64 بیتی بنویسم روی بقیه سیستم های 32 هم اجرا خواهد شد...

3- در مجموع کدوم رو ترجیح می دین و الآن با کدوم کار می کنین؟


ببخشین اگه سوال یه جوریه ، چون زیاد در این مورد نمی دونم
در ضمن سیستمم هم مشکلی برای اجرای 64 بیت نداره.
تشکر

ali_kolahdoozan
سه شنبه 22 تیر 1389, 14:55 عصر
هیچ فرقی نداره

Felony
سه شنبه 22 تیر 1389, 15:36 عصر
یعنی برنامه ای که با این سیستم 64 بیتی بنویسم روی بقیه سیستم های 32 هم اجرا خواهد شد...
اجرا شدن برنامه ای که با سیستم عامل 64 بیت نوشته شده ، روی سیستم عامل 32 بیتی ربطی به ویندوز نداره ، تا زمانی که کامپایلری که باهاش برنامه رو کامپایل میکنید 32 بیت باشه خروجی 32 بیت هست و چه در سیستم عامل 64 بیتی و چه در سیستم عامل 32 بیتی ، 32 بیت شناخته و اجرا میشه .

amir-yeketaz
سه شنبه 22 تیر 1389, 15:53 عصر
این سوال سوال من هم هست !!!
یعنی مثلا کامپایلر دات نت خروجیش 32 بیت هست؟؟؟؟

برنامه های 32 بیتی (یا همون کامپایلری که 32 بیتی خروجی داده روی سیستم عامل 64 بیتی اجرا میشن؟؟؟

کلا یه توضیح خفن بدین خیلی خوبه!!!

tdkhakpur
سه شنبه 22 تیر 1389, 15:54 عصر
- 32بیت رو نصب کنم یا 64 رو؟


اگر برنامه تان را روی سیستمهای 64 نصب میکنید از 64 استفاده کنید بهتر ه 64 بیتی باشه که تاثیری در سرعت داشته باشد(ولی داخل برنامه های متوسط 32 بیتی کجا کم آورده که ادم بخود 64 بیتی بنویسه).


- و اینکه در آینده بر روی برنامه هایی که قراره با این سیستم بنویسم تاثیر می ذاره یا ربطی نداره؟

خب مشکل هماهنگ بودن دستگاهها را خواهید داشت یعنی باید برنامه تان را روی سیستمهای 64 پیاده کنید یا به مشتری بگید من برنامه 64 دارم و سیستم شما باید 64 باشد.

یعنی برنامه ای که با این سیستم 64 بیتی بنویسم روی بقیه سیستم های 32 هم اجرا خواهد شد...

نه اصلا قابل اجرا نیست.

3- در مجموع کدوم رو ترجیح می دین و الآن با کدوم کار می کنین؟

امروزه 80 درصد مردم با سیستمهای 32 بیتی سرو کار دارند حالا اختیار با شماست.

#target
سه شنبه 22 تیر 1389, 17:52 عصر
یعنی برنامه ای که با این سیستم 64 بیتی بنویسم روی بقیه سیستم های 32 هم اجرا خواهد شد...
اگر با کامپایلر 32 بیت کامپابل کنید . روی سیستم 32 هم احرا میشه مثلا برنامه کامپایل شده در دلفی روی 32 بیت هم اجرا میشه در دات نت هم می توانید برنامه تان را بنویسید و برای هم 32 و هم 64 ( همان برنامه را) فقط با تنظیم یک گزینه ساده خروجی بگیرید .
در ضمن اگر بالای 3 گیگ رم دارید مجبورید 64 نصب کنید تا تمام رم شما شناسایی شود !


یعنی مثلا کامپایلر دات نت خروجیش 32 بیت هست؟؟؟؟
در دات نت می توانید هم برای 64 و هم 32 خروجی بگیرید . برای اجرای 64 باید فریم ورک 64 رت بر روی سیستم عامل 64 نصب کنید

PC2st
سه شنبه 22 تیر 1389, 17:58 عصر
Micro$oft Windo$ $e7en 64-bit می‌تواند برنامه‌های ۳۲ بیتی شما هم اجرا کند.

Alireza_Salehi
سه شنبه 22 تیر 1389, 18:03 عصر
سیستم عامل های 64 بیتی عموما قابلیت اجرای برنامه های 32 بیتی را دارند.

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

اگر از نرم افزار های خاصی استفاده می کنید و کار شما به آنها وابسته است قبلا از وب سایت سازنده اطلاعات لازم را کسب کنبد.

مثلا بنده از Matlab برای پردازش تصویر و ژنتیک استفاده کرده بودم، یکی از Toolbox های آن روی ویندوز 64 بیتی کار نمی کند و هیچ راه حلی هم از طرف شرکت سازنده برای ان ارائه نشده است. و بنده مجبور شدم بخشی از عملکرد Toolboxمورد نظر رو خودم پیادسازی کنم تا روی سیستم 64 بیتی برنامه جواب بدهد...

بنابراین مراقب باشید.

vcldeveloper
سه شنبه 22 تیر 1389, 18:04 عصر
نه اصلا قابل اجرا نیست.
چرا همینطوری اظهار نظر می کنید؟!!


یعنی برنامه ای که با این سیستم 64 بیتی بنویسم روی بقیه سیستم های 32 هم اجرا خواهد شد...
دوست عزیز، برنامه ایی که شما می نویسید، و کامپایل میشه، به کامپایلر شما مربوط هست، نه به ویندوز شما؛ شما اگر کامپایلرت 32 بیتی باشه، اون رو روی هر ویندوز 32 یا 64 بیتی نصب کنی، برنامه تولید شده همون 32 بیتی هست. اگر میخوای برنامه ات 64 بیتی باشه، کامپایلرت هم باید 64 بیتی باشه.


برنامه های 32 بیتی (یا همون کامپایلری که 32 بیتی خروجی داده روی سیستم عامل 64 بیتی اجرا میشن؟؟؟
تا اون سیستم عامل 64 بیتی (و CPU 64 بیتی مربوطه چی باشه)؛ قبلا هم این توضیح داده شده بود، اگر جستجو می کردید، پیدا می کردید: اگر CPU مربوطه x86-64 باشه (یعنی همین CPUهای 64 بیتی که در بازار می بینید)، برنامه 32 بیتی روی آن بدون مشکل اجرا میشه، کاهش کارایی هم ندارید.
اگر CPU مربوطه معماری دیگه ایی داشته باشه (مثلا CPUهای ایتانیوم)، اون وقت اگر براش شبیه ساز 32 بیتی وجود داشته باشه، می تونید برنامه رو با اون شبیه ساز اجرا کنید؛ اما کاهش کارایی خواهید داشت.

از اونجایی که فکر نمی کنم شما سر و کارتا با CPUهایی غیر از x86 و x86-64 باشه، پس می تونم بگم برنامه های 32 بیتی شما بدون مشکل روی CPUهای 64 بیتی مربوطه کار می کنند، و کارایی شان هم مطلوب خواهد بود.


یعنی مثلا کامپایلر دات نت خروجیش 32 بیت هست؟؟؟؟
دات نت اصلا کد ماشین تولید نمیکنه که خروجیش 32 بیتی یا 64 بیتی باشه؛ دات نت کد IL تولید میکنه. کد IL شما توسط CLR دات نت در سیستم مقصد، متناسب با معماری سیستم مقصد، کامپایل میشه. البته تا جایی که اطلاع دارم، در تنظیمات پروژه خودتون در Visual Studio امکان تعیین پلت فرم هدف رو هم دارید.

tdkhakpur
سه شنبه 22 تیر 1389, 19:08 عصر
چرا همینطوری اظهار نظر می کنید؟!!

منظورم زمانی هست که برنامه برای 64 بیت کامپایل شده باشد .
شما چرا اینقدر زود تصمیصم میگیرید؟!

Alireza_Salehi
سه شنبه 22 تیر 1389, 22:48 عصر
دات نت اصلا کد ماشین تولید نمیکنه که خروجیش 32 بیتی یا 64 بیتی باشه؛ دات نت کد IL تولید میکنه. کد IL شما توسط CLR دات نت در سیستم مقصد، متناسب با معماری سیستم مقصد، کامپایل میشه. البته تا جایی که اطلاع دارم، در تنظیمات پروژه خودتون در Visual Studio امکان تعیین پلت فرم هدف رو هم دارید.
دات ن تکد ماشین تولید نمیکنه ولی مواردی مثل JET درایور و ... که برای اجرای برنامه نیاز هست باتوجه به نوع کامپایل که میتونه یکی از سه حالت x64 , x32 , Any CPU باشه به برنامه اضافه می شوند.

مثلا اگر یک برنامه که نیاز به اکسس داره روی حالت ANY CPU کامپایل کنید و به یک سیستم 64 بیتی ببرید اجرا نمی شود. باید حتما روی x32 کامپایل کنید تا روی 64 بیت در مود 32 بیت اجرا گردد.

vcldeveloper
چهارشنبه 23 تیر 1389, 02:09 صبح
منظورم زمانی هست که برنامه برای 64 بیت کامپایل شده باشد .
شما چرا اینقدر زود تصمیصم میگیرید؟!
من زود تصمیم نمی گیرم؛ شما در ارسال های خودتون دقت کافی رو ندارید! مطلبی که از کاربر مربوطه خودتان در پست شماره 5 نقل قول کردید، این هست:


یعنی برنامه ای که با این سیستم 64 بیتی بنویسم روی بقیه سیستم های 32 هم اجرا خواهد شد...
جوابی هم که به اون سوال دادید، این هست:

نه اصلا قابل اجرا نیست.

پس یا اصلا سوال را دقیق نخواندید، و سریع جواب دادید؛ یا بدون اینکه از جوابش اطلاع کافی داشته باشید، جواب دادید.

tdkhakpur
چهارشنبه 23 تیر 1389, 10:31 صبح
پس یا اصلا سوال را دقیق نخواندید، و سریع جواب دادید؛ یا بدون اینکه از جوابش اطلاع کافی داشته باشید، جواب دادید.

همچین هم سوال سختی نیست که نشه بهش جواب داد.
شما هم مثل اینکه هر تاپیکی ارسال میشه بدون اینکه متوجه بشید شخص به جوابش رسیده یا نه زود مطلب ارسال میکنید اگر تاپیکهای قبل از خودتان را مشاهده سایرن هم جواب داده بودند.
و این کار شما باعث میشه دیگران هم از شما روش غلط را یاد بگیرند و به هر تاپیکی جواب داده و توجهی به پاسخهای دیگران نکنند.

vcldeveloper
پنج شنبه 24 تیر 1389, 18:32 عصر
شما هم مثل اینکه هر تاپیکی ارسال میشه بدون اینکه متوجه بشید شخص به جوابش رسیده یا نه زود مطلب ارسال میکنید اگر تاپیکهای قبل از خودتان را مشاهده سایرن هم جواب داده بودند.
و این کار شما باعث میشه دیگران هم از شما روش غلط را یاد بگیرند و به هر تاپیکی جواب داده و توجهی به پاسخهای دیگران نکنند.
سعی کن به جای موضع گیری درباره اشتباهی که مرتکب میشی، اگر اشتباهی بوده، بپذیری.

درباره ادعایی که کردی، پست من با فاصله چند دقیقه از پست چند کاربر قبل از خودم ارسال شد، مثلا PC2st (http://www.barnamenevis.org/forum/member.php?u=30917) در ساعت 18:28، و Alireza_Salehi (http://www.barnamenevis.org/forum/member.php?u=33355) در ساعت 18:33 دقیقه قبل از من در این تاپیک پست ارسال کردند. پست من در ساعت 18:34 دقیقه ارسال شد. لزومی نداره من هر دقیقه تاپیک را قبل از ارسال پست Refresh کنم. در ضمن، من در پست خودم به نکات مختلفی اشاره کردم، که بعضی از آن نکات در همون پست هایی که چند دقیقه قبل از پست من ارسال شده بودند، هم بودند، و بعضی هایشان هم نبودند.


همچین هم سوال سختی نیست که نشه بهش جواب داد.
سخت بود یا آسان، جوابی که شما دادید؛ غلط بود و موجب سردرگمی و گمراهی کاربر می شد.