与X86相比,X64应用程序很慢

时间:2014-10-29 10:55:58

标签: c#

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

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

与32位应用程序相比,加载时间大约需要10-15秒。我们没有对基于平台的代码做任何具体的事情。 我们正在使用一些注册表操作,xml阅读和一些基本的东西启动应用程序。

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


我尝试了“NGEN更新”,它稍微改善了性能,但我仍然需要建议如何才能提高此应用的性能。

1 个答案:

答案 0 :(得分:2)

  

与32位应用相比,加载时间大约需要10-15秒

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

这在以后的版本中没有改变,只是在越来越多的消费者产品运行64位版本的Windows时才出现问题。

微软带来了.NET Native,因为启动时间很关键的现代手机都运行64位系统。在编写JITter时,谁会想到这个问题。