64位应用程序具有超过32位应用程序的性能优势的来源是什么?我假设有一个性能优势,因为像WinRAR这样的程序做广告。
另外,我们可以通过切换到64位编译器来获得这些性能优势,还是需要对代码进行任何更改?
欢迎与非托管代码和托管代码相关的答案。
答案 0 :(得分:17)
x64架构使x86架构中可用的通用寄存器数量翻倍,因此编译器能够将更多数据保存在(非常快)CPU寄存器中,而不是(相对较慢)RAM中。
答案 1 :(得分:4)
他们什么时候停止投放广告?我错过了什么? ; - )
主要的性能优势是在64位系统中,您可以分配超过4GB的RAM(实际上在大多数2GB的系统上),而无需交换。如果你需要它,这是一个巨大的速度优势。
因此,如果您的应用程序需要大量RAM(图像/视频/音频处理,世界/宇宙模拟),那么64位将具有优势。
除此之外,64位CPU还具有可在64位数据类型上运行的命令(因此您无需模拟具有32位类型的命令)。这也是一个优势,但它是a)不是那么大,因为你的算法需要使用这些类型而且大多数都没有b)它们仍然比32位类型慢(但比模拟速度快)。
为了给你一个想法,这是一个来自超级计算机家伙的老笑话:“从磁盘加载数据需要一天时间,然后程序需要五分钟来处理数据,然后我们需要另一天来保存结果到磁盘“。从RAM读取数据的速度比访问磁盘快1000到1000000倍。
总而言之,对于普通用户来说,64位系统几乎没有优势。
答案 2 :(得分:4)
为了利用最新CPU的64位架构,您必须:
答案 3 :(得分:1)
我的理解是,在大多数情况下,除了使用更多内存的能力之外,没有这样的性能提升。 (例如,如果您正在使用64位数据类型,它可能会提供更高的性能。)
答案 4 :(得分:1)
这里有一些很好的答案。
如前所述,您可以访问无限制的RAM,如果您需要,可以帮助提高性能。
如果您不需要,我会谦虚地添加,但无论如何都要使用它,这会损害性能。
永远不要忘记最古老的科学法则之一:
自然憎恶真空