托管在.Net4应用程序中的.Net2程序集在x86中比在AnyCpu模式下表现更好?

时间:2011-08-23 12:33:11

标签: .net winforms performance x86 anycpu

我有一个.Net4 WinForms应用程序引用第三方.Net2程序集,其中包含图形密集的可视控件。当我意外地将它从AnyCpu切换到x86编译模式时,我注意到应用程序视觉性能的巨大改进。我的开发工具是x64 Windows 7.当控件渲染其图形元素时,改进至少为两倍。

这是一个众所周知的事实,还是我做错了什么?

2 个答案:

答案 0 :(得分:3)

请参阅以下两篇文章:

AnyCPU Exes are usually more trouble than they're worth

Visual Studio: Why is there no 64 bit version? (yet)

另见这篇关于64位代码的帖子:Should I choose to take advantage of 64-bit?,它清楚地表明,例如Paint.NET在64位模式下工作得更好,因为开发人员优化了64位代码。

所以,我不认为做错了什么,但是当你在64位进程中运行时,你正在使用的第三方.NET程序集可能会得到改进。

答案 1 :(得分:2)

这不会让我感到惊讶。当您将应用程序设置为“任何CPU”时,CLR会生成一个应用程序,用户机器上的jiter必须进一步编译以最适合其架构。如果将其设置为“x86”,则dev编译器将为x86计算机编译应用程序,从而减少客户端jiter的负载。