我刚刚得到一台新的64位计算机,我仍在尝试理解32位和64位之间的差异。我知道使用64位依赖项构建的应用程序只能运行64位,但使用32位依赖项构建的应用程序可以在32位和64位系统上运行。
但是,还有其他差异吗?我知道有些程序有两种不同的Windows版本可供下载,一种用于64位,一种用于32位。为什么他们提供两种不同的类型?编译具有64位依赖性的程序以使程序在64位系统上运行是否会加速?
答案 0 :(得分:1)
除了速度,一些程序没有选择。它们需要完全匹配主机操作系统的位数。
一个很好的例子是TortoiseSVN,它安装了一个shell扩展。 Shell扩展是加载到其他进程的DLL。因此,如果想要提供shell扩展,TortoiseSVN必须在x64系统上提供64位DLL。
司机是第二个例子。
当谈到速度时,当然会有所不同。这在很大程度上取决于程序的功能。如果程序不需要高性能,那么提供x64可执行文件就无济于事,对于开发人员而言,这对用户来说都是浪费时间。
这是导致64位操作系统上32位情况的性能差异的原因:
答案 1 :(得分:0)
速度提升取决于应用程序的功能,正如usr所说。但从根本上说,64位CPU能够在相同的时间内处理两倍于32位的数据;但是这样做的机器指令是特定于64位处理器的,所以现有的本机程序必须重新编译(至少)以显示好处。
对于x86_64,内存指针现在也是64位宽而不是32位,这意味着程序可以处理更多的内存。但是,代码占用磁盘和内存空间的大约两倍;如果你的64位系统缺乏内存,那么交换可能会更糟糕。
答案 2 :(得分:0)
大多数语言的表现大致相同。
64位的主要原因是可寻址内存。 A32位进程只能访问2 GB的数据,但64位进程可以访问18个数字字节(这比您可以放入机器的RAM数量多)。