如果我們在64位機器上運行32位二進制,會有什麼影響?如果機器具有超過4 GB的RAM,它會有什麼影響(系統中的RAM是8GB)?在64位機器上運行32位二進制
回答
當運行在64位計算機的32位二進制文件(假設OS是在64位模式運行),您有以下限制:
- 二元不能充分利用64位運算指令。這可能會降低性能。
- 該二進制文件無法尋址超過4GB的虛擬內存。
但是,這些4GB可以位於8GB內存中的任何位置。因此,如果您運行的是多個32位應用程序,每個應用程序使用少於4GB,則可充分利用所有8GB內存。
請注意,由於各種限制,您的應用程序實際上可能只能分配2GB的虛擬內存。
點號。 1(二進制不能利用64位算術指令)對於至少兩個平臺是錯誤的。 (sparcv9-linux/solaris和[x32 - * - linux](http://en.wikipedia.org/wiki/X32_ABI)) – 2012-03-29 08:25:56
在x64上,32位二進制文件無法訪問[通用寄存器]的高32位(http://en.wikipedia.org/wiki/X64#Operating_modes)。因此,當添加兩個64位數字時,一個32位二進制必須發出兩條指令而不是一條指令。 @jørgensen – user1202136 2012-03-29 08:40:48
x86-64增加了更多的東西:更多的寄存器,PIC相對尋址,使用寄存器進行函數調用的更精確的ABI,通常導致性能改進,這些偏移大大抵消了使用更大(更不緩存不友好)類型。在其他平臺(sparc64 vs sparc?mips64 vs mips?)從32位到64位可能實際上會降低性能。 – ninjalj 2012-03-29 10:38:08
- 1. 在64位Linux上執行32位二進制時的SIGSEGV
- 2. 32位內核如何運行64位二進制文件?
- 3. 在64位linux armv8機器上編譯32位二進制時遇到問題
- 4. 64位在32位機器上運行的組件COM +導出
- 5. 防止在64位機器上運行32位安裝項目
- 6. 在32位或64位matlab上運行?
- 7. 在64位CentOS上爲ARM構建32位二進制文件
- 8. gcc:在32位平臺上編譯64位二進制文件
- 9. 如何運行64位機器上的32位API?
- 10. ASP.NET 32位機器現在編譯試圖在64位機器上運行
- 11. 64位JVM上運行的Eclipse 32位
- 12. 32位/ 64位系統上的二進制文件?
- 13. 在64位機器上限制芯片32位
- 14. 爲什麼我的PowerShell主機在64位機器上以32位運行?
- 15. 在64位機器上以32位模式運行Oracle客戶機
- 16. 需要在32位長的機器上執行64位乘法
- 17. 64位Centos上的64位二進制執行錯誤
- 18. 在32位和64位機器中總是長64位
- 19. GlassFish負載平衡器配置器插件在32位機器上安裝64位二進制文件
- 20. 在Win 7 64位機器上運行32位編譯Visual Foxpro應用程序
- 21. 我可以在32位機器上運行64位VMware映像嗎?
- 22. 64位OS/32位進程
- 23. JProfiler GUI在32位機器上連接到64位服務器
- 24. 使用32位installshield打包64位二進制文件
- 25. 如何將32位編譯二進制轉換爲64位
- 26. 運行32位和64位java代碼
- 27. 我可以在64位唯一主機內核上的64位docker容器中運行32位二進制文件嗎?
- 28. 在AIX上使用32位g ++構建64位二進制文件
- 29. java jni在64位系統上使用32位二進制文件
- 30. 在64位機器上調用64位Dephi DLL從C#在64位機器上
答案「否」就足夠了嗎? – Mehrdad 2012-03-29 07:53:09
如果通過影響你的意思是積極的影響,那麼在某種程度上:更多的RAM意味着更多的磁盤緩存... – dbrank0 2012-03-29 08:23:41