Operating system 32位应用程序在64位操作系统上运行得更快还是更慢?

Operating system 32位应用程序在64位操作系统上运行得更快还是更慢?,operating-system,32bit-64bit,Operating System,32bit 64bit,我主要在32位嵌入式系统上工作,在这些系统中,使用本地32位类型(int、float)通常比使用16位等效类型更快。速度放缓的原因是处理器在对其执行操作之前将任何16位数字扩展到32位 现在我转向PC和64位操作系统。我的问题是-32位类型会导致64位机器上的任何减速吗 例如,如果我将MyApp.exe构建为32位应用程序,它在64位操作系统上的运行速度是较慢还是较快 我知道应用程序的性能涉及很多因素,我故意将这些因素排除在问题之外(IO速度、更快的内存等)。有时32位应用程序运行得更快,有时运

我主要在32位嵌入式系统上工作,在这些系统中,使用本地32位类型(int、float)通常比使用16位等效类型更快。速度放缓的原因是处理器在对其执行操作之前将任何16位数字扩展到32位

现在我转向PC和64位操作系统。我的问题是-32位类型会导致64位机器上的任何减速吗

例如,如果我将MyApp.exe构建为32位应用程序,它在64位操作系统上的运行速度是较慢还是较快


我知道应用程序的性能涉及很多因素,我故意将这些因素排除在问题之外(IO速度、更快的内存等)。

有时32位应用程序运行得更快,有时运行得更慢。影响绩效的竞争因素很多。一般来说,两个方向的差异都不大

我不明白你怎么能合法地将任何因素排除在性能考虑之外,因为性能总是发生在现实世界中,所有因素都在起作用。速度不是理论上的,不能孤立地对待

以下是一篇作者做了一些基准测试的文章:

他发现32位二进制文件在他的测试中速度更快。这是2004年初SPARC的节目

以下是英特尔2010年的一篇文章,内容是关于迁移到64位应用程序:


根据本文,64位二进制文件可以让您获得更快的数学运算速度,因此,如果正确优化,数学密集型代码应该会更快。否则,您的64位代码可能会更慢,特别是因为它占用更多内存,这可能会导致访问RAM的时间更长(更频繁的缓存未命中)。

您包括哪些因素?我考虑的是32位与64位操作的CPU执行。但是当你有更多的代码时,Nate C-K在RAM访问时间方面提出了一个很好的观点。