Tri*_*ock 15 performance 64-bit
64位应用程序具有超过32位应用程序的性能优势的来源是什么?我假设有一个性能优势,因为像WinRAR这样的程序做广告.
另外,我们是否可以通过切换到64位编译器来获得这些性能优势,还是需要对代码进行任何更改?
欢迎使用与非托管代码和托管代码相关的答案.
Fer*_*cio 17
x64架构使x86架构中可用的通用寄存器数量翻倍,因此编译器能够将更多数据保存在(非常快)CPU寄存器中,而不是(相对较慢)RAM中.
他们什么时候不再在广告中撒谎了?我错过了什么?;-)
主要的性能优势是,在 64 位系统中,您可以分配超过 4GB 的 RAM(实际上在大多数系统上为 2GB 以上),而无需进行交换。如果您需要的话,这将是一个巨大的速度优势。
因此,如果您的应用程序需要大量 RAM(图像/视频/音频处理、世界/宇宙模拟),64 位会具有优势。
最重要的是,64 位 CPU 还具有可操作 64 位数据类型的命令(因此您无需模拟 32 位类型的命令)。这也是一个优势,但 a) 没那么大,因为算法需要使用这些类型,而大多数算法不需要 b) 它们仍然比 32 位类型慢(但比仿真快)。
为了给你一个想法,这里有一个来自超级计算机专家的老笑话:“从磁盘加载数据需要一天的时间,然后程序需要五分钟来处理数据,然后我们需要另一天将结果保存到磁盘”。从 RAM 读取数据比访问磁盘快 1000 到 1000000 倍。
所以总而言之,对于普通用户来说,64位系统几乎没有优势。
为了利用最新 CPU 的 64 位架构,您必须: