如果我们在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