نمایش نتایج 1 تا 17 از 17

نام تاپیک: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    asus-f3jr
    سن
    41
    پست
    89

    فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    یه برنامه نوشتم که مشتری از اون در یک کامپیوتر 64 بیتی استفاده میکنه آیا نسخه 64بیتی براش درست کنم یا 32بیتی یا نه همون AnyCPU?
    اصولا چه فرقی بین این نوع کامپایلها وجود داره مزیتها و اشکالاتشون چیه؟

  2. #2

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    اصولا برنامه های 32 بیتی روی 64 بیتی کار میکنند.
    (من خودم رو ویندوز 64 بیت ویستا تست کردم).

    اگر برنامه 32 بیت باشد یه Program File X86 درست میکند و برنامه آنجا نصب میشود.

    ولی فکر میکنم برنامه AnyCpu بود.

    چون من یه برنامه CloneCD داشتم که 32 بیت بود ولی روی 64 اجرا نمیشد.

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    asus-f3jr
    سن
    41
    پست
    89

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    چه فرقی بین این نوع کامپایلها وجود داره مزیتها و اشکالاتشون چیه؟
    آیا اگه با 64 بیتی کامپایل کنم سرعت برنامه روی سیستم 64بیتی بالا میره یا فرقی نداره؟ اگه فرقی نداره پس چرا کامپایل 64 بیتی رو ساختن؟

  4. #4
    VIP آواتار raravaice
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Tehran
    سن
    40
    پست
    1,944

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    منظور از 64 بیت X64 و 32 بیت X86 نوع CPU هست نه سیستم عامل.
    مثلا وقتی شما Windows Vista یا Server و یا حتی در بین Linux ها نسخه 64 بیتی آن را روی یک CPU 64 بیتی مثلا Xeon اجرا میکنید واقعا تفاوت را احساس میکنید.

    منظور از 64 یا 32 بیت بودن CPU در ثباتها خلاصه میشه که شما در برنامه های در سطح دات نت هیچ وقت باهاشون در گیر نمیشید.


    موفق باشید

  5. #5

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    اگه CPU کامپیوتر اجرا کننده برنامه 64 بیتی باشه ولی سیستم عامل نصب شده 32 باشد ، عملا شما از 32 بیت ثبات های CPU استفاده نکرده اید و امکان اجرا کردن برنامه های 64 رو ندارید چون برنامه ها توسط سیستم عامل مدیریت میشوند

    تعداد بیت ها در CPU و در برنامه ها و سیستم عمال ها باعث افزایش سرعت نخواهد شد بلکه باعث افزایش قدرت خواهد شد

    مثلا وقتی شما Windows Vista یا Server و یا حتی در بین Linux ها نسخه 64 بیتی آن را روی یک CPU 64 بیتی مثلا Xeon اجرا میکنید واقعا تفاوت را احساس میکنید.
    این امر بخاطر پشتیبانی و استفاده از Smart cach و cach L3 بوده والا 64 بیت ویا 32 بیت در سرعت نقشی ایفا نمیکنند

  6. #6
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    والا 64 بیت ویا 32 بیت در سرعت نقشی ایفا نمیکنند
    !!!!؟؟؟؟!!!!
    پس میشه بگید چه نقشی ایفا میکند؟
    خودتون میگید ثبات های CPU دارای 64 بیت هستند به جای 32 بیت. حالا فرض کنید در یک سیستم با معماری 32 بیتی لازم باشه که CPU داده ای 128 بیتی رو پردازش کنه در ثبات هاش، راهی نداره جز اینکه این 128 بیت رو به بخش های 32 بیتی تقسیم کنه و هر بار یک بخش رو پردازش کنه. بنا براین باید 4 بار داده بین ثبات ها جابجا شود.
    اما در سیستم 64 بیتی تنها 2 بار نیاز به این جابجایی خواهد بود.

    به نظر شما کدوم سیستم سریعتر خواهد بود؟

  7. #7

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    راهی نداره جز اینکه این 128 بیت رو به بخش های 32 بیتی تقسیم کنه و هر بار یک بخش رو پردازش کنه. بنا براین باید 4 بار داده بین ثبات ها جابجا شود.
    اما در سیستم 64 بیتی تنها 2 بار نیاز به این جابجایی خواهد بود.
    تا حالا به قضیه این طوری نگاه نکرده بود

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

    1- یکی از علت های محدود بودن حجم حافظه اصلی عدم آدرس پذیر بودن آفست و سگمت بزرگ از طرف ثبات ها cpu است => اگر مقدار بیت های ثبات ها افزایش یابد مقدار حافظه قابل آدرس دهی بیشتر میشود

    2- جلوگیری از overfolw زود هنگام مثلا" دو عدد بزرگ integer رو که باهم جمع کنیم و نتیجه حاصله خارج محدوده integer شود ولی در صورتی که تعداد بیت ها افزایش یابد از overfolw زود هنگام جلوگیری به عمل می آید و ...

    ولی فکر کنم با صحبتی که شما مطرح کردید بشه نتیجه گرفت تعداد بیت ها باعث افزایش سرعت نیز می شود

  8. #8

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    نقل قول نوشته شده توسط raravaice مشاهده تاپیک
    منظور از 64 بیت X64 و 32 بیت X86 نوع CPU هست نه سیستم عامل.
    مثلا وقتی شما Windows Vista یا Server و یا حتی در بین Linux ها نسخه 64 بیتی آن را روی یک CPU 64 بیتی مثلا Xeon اجرا میکنید واقعا تفاوت را احساس میکنید.

    منظور از 64 یا 32 بیت بودن CPU در ثباتها خلاصه میشه که شما در برنامه های در سطح دات نت هیچ وقت باهاشون در گیر نمیشید.


    موفق باشید
    من سخنان ایشون رو تایید میکنم.

    شما توی ویندوز بین 32 و 64 بیت عملا هیچ تفاوتی نمیبینید(البته cpu intel).
    من 3d max کار میکردم.
    توی ویندوز 32 یه مدل رو رندر گرفتم و توی ویندوز 64 هم رندر کرفتم ولی در مدت زمان هیچ فرقی با هم نکردند.
    چندتا از دوستان من هم کار میکنند و همین موضوع رو تست کردند و این حرف رو تایید میکنند.


    مخلص کلوم: ما فرق چندانی بین 32(x86) و 64(x64) ندیدیم.

  9. #9
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    نقل قول نوشته شده توسط alireza_tavakol مشاهده تاپیک
    اگه CPU کامپیوتر اجرا کننده برنامه 64 بیتی باشه ولی سیستم عامل نصب شده 32 باشد ، عملا شما از 32 بیت ثبات های CPU استفاده نکرده اید و امکان اجرا کردن برنامه های 64 رو ندارید چون برنامه ها توسط سیستم عامل مدیریت میشوند

    تعداد بیت ها در CPU و در برنامه ها و سیستم عمال ها باعث افزایش سرعت نخواهد شد بلکه باعث افزایش قدرت خواهد شد

    این امر بخاطر پشتیبانی و استفاده از Smart cach و cach L3 بوده والا 64 بیت ویا 32 بیت در سرعت نقشی ایفا نمیکنند
    مطالب بالا تا حد و قابل قبولی در مورد داخل Cpu درست هست ولی از اینکه میگویید در سرعت تاثیر ندارد اشتباه است .
    اصولا وقتی cpu از یک دامنه مثلا 32 به دامنه بالاتر 64 صعود میکند به این خاطر نیست که فقط بتواند بازه رجیسترها را افزایش دهد بکله مقصود و هدف اصلی ارائه سرعت بیشتر به اجرای کدهای cpu است. که این هم به پهنای باند گذرگاه داده و آدرس بستگی دارد شما در نظر بگیرید که داده های شما با پهنای 32 وارد cpu و خارج بشوند چه فرقی با این دارد که با دوبرابر اینها یعنی 64 بیت وارد و خارج شوند پس مطمئنا عامل پیشرفت cpu به خاطر سرعت آن است.

  10. #10
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    نقل قول نوشته شده توسط open-source مشاهده تاپیک
    من سخنان ایشون رو تایید میکنم.

    شما توی ویندوز بین 32 و 64 بیت عملا هیچ تفاوتی نمیبینید(البته cpu intel).
    من 3d max کار میکردم.
    توی ویندوز 32 یه مدل رو رندر گرفتم و توی ویندوز 64 هم رندر کرفتم ولی در مدت زمان هیچ فرقی با هم نکردند.
    چندتا از دوستان من هم کار میکنند و همین موضوع رو تست کردند و این حرف رو تایید میکنند.


    مخلص کلوم: ما فرق چندانی بین 32(x86) و 64(x64) ندیدیم.
    شما برای تست کردن cpu نمیتوانید اجرای برنامه ها را مد نظر بگیرید مخصوصا کار گرافیکی که تقریبا به ram موجود در کارت گرافیکی شما بستگی دارد.
    شما باید برای این نوع کار های از برنامه های هوش مصنوعی و برنامه های پیچیده مانند شبکه های عصبی و سایر برنامه ها که به سرعت بالا نیاز دارند استفاده کنید. برنامه های بالا یی که شما بهشان اشاره کردید تقریبا هیچ فشاری به cpu وارد نمیکنند.

  11. #11

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    من 3d max کار میکردم.
    توی ویندوز 32 یه مدل رو رندر گرفتم و توی ویندوز 64 هم رندر کرفتم ولی در مدت زمان هیچ فرقی با هم نکردند.
    فرض مسئله :اگه cpu ، ثبات های 64 بیتی داشته باشه و سیستم عمال هم 64 بیت باشه ولی فایلی اجرایی برای سیستم های 32 بیتی نوشته شده باشه !فکر نمی کنم توی سرعت تفاوتی بوجود بیاد!

    نتیجه گیری جدید که من کردم : اگه سیستم عامل 64 بیتی رو روی سخت افزار 32 بیت اجرا کنیم باعث افت سرعت میشه. پس در هیچ حالتی افزایش سرعت نداریم ولی اگه config درستی نداشته باشیم باعث افت سرعت خواهد شد.

    در کل تعداد بیت ها فقط در افزایش قدرت تاثیر داره! اگه کسی مخالفه این نتیجه گیریه با یک مثالی ملموس ادله بیاره

    پارامتر های مهم در افزایش سرعت FSB , BSB , Cach در سی پی یو
    با تشکر/

  12. #12

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    نقل قول نوشته شده توسط raravaice مشاهده تاپیک
    منظور از 64 یا 32 بیت بودن CPU در ثباتها خلاصه میشه ، که شما در برنامه های در سطح دات نت هیچ وقت باهاشون در گیر نمیشید.
    پس می فرمایید IDE VS محض الکی پنجره Configuration Manager یا مثلا" Properties>Builb>General>Platform target رو گذاشته ؟

  13. #13

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    نقل قول نوشته شده توسط tdkhakpur مشاهده تاپیک
    شما برای تست کردن cpu نمیتوانید اجرای برنامه ها را مد نظر بگیرید شما باید برای این نوع کار های از برنامه های هوش مصنوعی و برنامه های پیچیده مانند شبکه های عصبی و سایر برنامه ها که به سرعت بالا نیاز دارند استفاده کنید.
    تا اونجایی که من مباحث هوش مصنوعی رو میشناسم ( در حد پاس کردن درس 3 واحدی ) برای اجرا الگوریتم های هوش مصنوعی به فرکانس سی پی یو ( Clock Pulse ) نیاز داریم

    کدوم الگوریتم هوش مصنوعی به ثبات های CUP فشار میاره که با افزابش تعداد بیت ها فشار کاهش پیدا کنه؟

  14. #14
    کاربر تازه وارد
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    asus-f3jr
    سن
    41
    پست
    89

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    دوستان اگه لطف کنن بحث رو روی انواع کامپایل از نظر 64 بیتی 32 بیتی ایتانیوم و AnyCpu در VS.net متمرکز کنن.
    کامپایل پروژه به صورت 64 بیتی فکر نکنم فقط این مزیت رو نسبت به کامپایل AnyCpu داشته باشه که دیگه برنامه با cpuهای 32 بیت کار نکنه. احتمالا مزیت های دیگه ای هم داره اگه کسی میدونه منتظریم
    ممنون

  15. #15

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    نوع داده int : به اندازه ثبات های CPU و نوع سیستم عامل بستگی داره

    یعنی توی کامپوتر های 8086 8088 مقدار فضای اشغالی نوع داده int در RAM یک بایت بود ( چون ثبات ها 1 بایت بودن )

    در کامپوتر های 80186 80286 80386 مقدار فضایی که نوع داده int اشغال میکرد دو بایت بود

    در کامپیوتر های 80486 80586(Pentium) تا کامپیوتر های X86 ، مقدار فضایی که نوع داده int در RAM اشغال می کki چهار بایت است (32=4*8)

    و در سیستم های 64 بیتی مقدار فضایی که اشغال میکنه 8 بایت خواهد بود
    _____________________
    حالا وقتی دامنه متغییر های int افزایش پیدا کنه قدرت محاسبه برای اعداد بزرگتر محیا میگردد

  16. #16
    VIP آواتار raravaice
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Tehran
    سن
    40
    پست
    1,944

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    این تفاوت در پیچیدگی داده ها در سطوح پایین پروسس قابل درک هست.

    مثلا در assembly ثباتی داریم به نام ax که 32 بیتی هست یعنی در CPU های 32 بیتی کار خودش رو درست انجام میده همچنین میتونه در CPU های 64 بیتی هم کار کنه ولی وقتی یک برنامه 32 بیتی را روی یک CPU 64 بیتی اجرا میکنید توقع بیجا برای احساس تغییر نداشته باشید. چون ثبات همون ثباتهای 32 بیتی هستن.
    در ثباتهای 32 بیتی شما به عدد 0xFFFFFFFF که معادل 4،294،967،295 هست محدود هستید به این معنی که پردازش های بزرگتر از این عدد برای شما در شرایط عادی مقدور نیست.
    ولی در CPU های 64 بیتی علاوه بر ثبات های 32 بیتی ax,bx,cx, ... نوع 64 بیتی این ثباتها هم وجود داره که eax,ebx,ecx, ... نام گزاری شده پس در این شرایط بازه پردازش عددی ما به 0xFFFFFFFFFFFFFFFF که معادل 18،446،744،073،709،551،615 ارتقا خواهد یافت. پس در چنین شرایطی اگر در برنامه ای از یکی از ثباتهای 64 بیتی استفاده شده باشه اون برنامه هیچ وقت برای یک CPU 32 بیتی قابل درک نخواهد بود پس اجرا هم نخواهد شد و عکس این مسئله هم صدق میکنه به این معنی که اگر شما در برنامه ای که به صورت 64 بیتی کامپایل شده ولی از ثباتها 64 بیتی در اون استفاده نشده مشکلی بر روی پردازنده های 32 بیتی پیدا نخواهید کرد.
    هچنین پردازش گر های 64 بیتی در شرایط خاص و پیچیده بازدهی و سرعت خود را نشان خواهند داد نه شرایط عادی و خانگی.
    -----------------------

    alireza_tavakol@

    مثلا وقتی شما Windows Vista یا Server و یا حتی در بین Linux ها نسخه 64 بیتی آن را روی یک CPU 64 بیتی مثلا Xeon اجرا میکنید واقعا تفاوت را احساس میکنید.
    در جمله بالا بحثی درباره سرعت نشده گفته شده تفاوت را احساس میکنید و بنا به توضیحات پیشین این تفاوت در بر نامه های پیچیده که سرورکار با ارقام بزرگی دارند قابل درک است.
    همچنین اگر با یک نگاه غیر فنی و عامیانه به تفاوت بین 32 بیتی یا 64 بیتی بودن پردازنده بنگریم به این نتیجه خواهیم رسید که هدف از ساخت پردازنده های 64 بیتی انجام محاسبات بسیار بزرگ در مدت زمان کمتری بوده ، یعنی سرعت + قدرت


    پس می فرمایید IDE VS محض الکی پنجره Configuration Manager یا مثلا" Properties>Builb>General>Platform target رو گذاشته ؟
    بله ، با سطح دانش بنده سالیانه سال با ارقام 64 بیتی سرو کار پیدا نخواهم کرد.

    نوشته شده توسط raravaice
    منظور از 64 یا 32 بیت بودن CPU در ثباتها خلاصه میشه ، که شما در برنامه های در سطح دات نت هیچ وقت باهاشون در گیر نمیشید.
    منظور از درگیر شدن درگیری فیزیکی و زور آزمایی نیست ;)

    منظور همون استفاده از نوع ثبات حافظه هست که شما هیچ وقت با زمان استفاده از ax یا eax درگیر نمیشی. ولی در زبانی مثل assembly طرز استفاده از این ثباتها بسیار مهم و حیاتی هستند.


    --------------------------------
    پ.و : یاد بگیریم بجای نقض کردن خام و غیر فنی، با اصول و توضیحات کامل یک مسئله را نقض کنیم چون همین نقض کردن با اصول علم دیگران باعث پیشرفت جوامع بشری شده و خواهد شد.


    موفق باشید

  17. #17
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: فرق کامپایل 32 بیتی و 64 بیتی با AnyCPU

    نقل قول نوشته شده توسط alireza_tavakol مشاهده تاپیک
    کدوم الگوریتم هوش مصنوعی به ثبات های CUP فشار میاره که با افزابش تعداد بیت ها فشار کاهش پیدا کنه؟
    مثال برنامه ای همان محاسبات ژنتیک و یا ترکیبات اتمی و غیره همه این دلایل فقط ذکر یادآوریست.
    ببینید اصلا بحث سرعت cpu به رجیستر نیست بلکه رجیستر جزو امکانات cpu و انقدر که شما اذعان میکنید رو سرعت تاثیر ندارد بلکه طول bus یا همان گذرگاه است که سرعت را بالا میبره.
    ولی نمیدان این همه مطالب را برای بیان 64و 32 بیتی بودن را ارائه میدهد اصلا سیستم عامل 64 بیتی قادر به اجرا با مادر بورد و cpu با طول گذرگاه 32 بیتی نیست. بلکه باید از فرایند اجرای خودش به سیستم عامل 32 نزول دهد(البته هنگام نصب) که باز همان سیستم عامل 32 بیتی خواهد بود و دارای همان سرعت هم هست میتوانید vista را آزمایش کنید.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •