32位exe和64位exe的区别

露出白牙笑一笑 2013-11-21 10:39:36
操作系统分32和64是因为支持的处理器位数不同,64的有更大的寻址空间,但为什么exe也有32和64之分?比如richcopy.exe和richcopy64.exe,这有何不同呢?64的更快吗?
...全文
1919 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 5 楼 dongxinxi 的回复:
[quote=引用 3 楼 LargeSkyMensk 的回复:] 32位与64中,一些数据类型大小不一样,可以访问CPU储存器大写也不一样,当然还有些指令。
是的,对于不同的CPU(寄存器和数据总线也不一样),同一个程序功能,所需要的汇编代码(机器指令)也不一样 64位的windows中有个Wow64模拟器,所以大多数32位程序可以在64位机器上跑,但是性能略弱(毕竟是模拟环境) 但反过来就不行了,因为64位程序运行时所执行的机器指令和用到的寄存器(宽度),32位机无法兼容 64位机支持更大的内存寻址空间和数据宽度,同一个程序的32位版和64版,在相应的机器上运行的性能没什么差别[/quote] 是不是可以认为安装到Program Files (x86)目录下的应用全部都是只有32位版本的应用呢?
devmiao 2013-11-21
  • 打赏
  • 举报
回复
64bit和32bit程序相比,大部分情况下性能差不多,甚至在低端处理器上性能不升反降,这是因为64bit更加消耗缓存。64bit只有在科学运算的场合才能发挥优势。当一个程序大量使用long、double等64bit长度的类型,并且执行计算的时候,64bit可以将它们视作本地操作数直接处理,而32bit程序则会被编译器编译成好几条指令分别处理它的高位和低位。
  • 打赏
  • 举报
回复
引用 3 楼 LargeSkyMensk 的回复:
32位与64中,一些数据类型大小不一样,可以访问CPU储存器大写也不一样,当然还有些指令。
是的,对于不同的CPU(寄存器和数据总线也不一样),同一个程序功能,所需要的汇编代码(机器指令)也不一样 64位的windows中有个Wow64模拟器,所以大多数32位程序可以在64位机器上跑,但是性能略弱(毕竟是模拟环境) 但反过来就不行了,因为64位程序运行时所执行的机器指令和用到的寄存器(宽度),32位机无法兼容 64位机支持更大的内存寻址空间和数据宽度,同一个程序的32位版和64版,在相应的机器上运行的性能没什么差别
u011781558 2013-11-21
  • 打赏
  • 举报
回复
32位的操作内存最大支持3.25G,64位最大支持128G,这就是区别。
largeskymengsk 2013-11-21
  • 打赏
  • 举报
回复
32位与64中,一些数据类型大小不一样,可以访问CPU储存器大写也不一样,当然还有些指令。
  • 打赏
  • 举报
回复
如果是优化,都做了哪方面的优化呢?
  • 打赏
  • 举报
回复
为该是针对64位有专门的优化的吧
宝_爸 2013-11-21
  • 打赏
  • 举报
回复
引用 7 楼 ppokyou 的回复:
是不是可以认为安装到Program Files (x86)目录下的应用全部都是只有32位版本的应用呢?
我觉得应该是的。

8,834

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧