X64应用程序与X86相比速度较慢

本文关键字:速度 应用程序 X86 X64 | 更新日期: 2023-09-27 18:28:19

我们有一个在32位和64位平台上编译的C#.NET应用程序(framework 2.0,VS 2008)。

与32位相比,64位应用程序的性能有所下降。

与32位应用程序相比,加载所需时间几乎增加了10-15秒。我们没有对基于该平台的代码做任何具体的操作。我们在启动应用程序时使用了一些注册表操作、xml读取和一些基本的东西。

在x86平台上编译的32位应用程序没有问题。


我尝试了"NGEN更新",它稍微提高了性能,但我仍然需要建议我们如何提高这个应用程序的性能。

X64应用程序与X86相比速度较慢

与32位应用程序相比,加载几乎多花10-15秒

代码是从IL代码编译为目标计算机上的机器代码。对于32bit,开发人员认为这将是一个桌面交互式应用程序,并编写了一个JITter(实时编译器),它可以为优化的启动时间进行编译,从而牺牲了一些运行时优势。对于64位应用程序,开发人员认为这是非交互式服务器应用程序。因此,JITter将编译优化的运行时性能,牺牲启动速度。

这在后来的版本中没有改变,直到最近,当越来越多的消费类产品运行64位版本的Windows时,这才成为一个问题。

微软引入了.NET Native,因为启动时间是关键的现代手机都运行64位系统。谁能想到,当JITter被写出来的时候。