我有一个 .Net4 WinForms 应用程序,它引用了第 3 方 .Net2 程序集,其中包含大量图形的可视控件。当我不小心将应用程序从 AnyCpu 切换到 x86 编译模式时,我注意到应用程序的视觉性能有了巨大的提升。我的开发设备是 x64 Windows 7。当控件呈现其图形元素时,改进至少是两倍。
这是一个已知的事实还是我做错了什么?
我有一个 .Net4 WinForms 应用程序,它引用了第 3 方 .Net2 程序集,其中包含大量图形的可视控件。当我不小心将应用程序从 AnyCpu 切换到 x86 编译模式时,我注意到应用程序的视觉性能有了巨大的提升。我的开发设备是 x64 Windows 7。当控件呈现其图形元素时,改进至少是两倍。
这是一个已知的事实还是我做错了什么?
请参阅这两篇关于它的文章:
Visual Studio:为什么没有 64 位版本?(然而)
另请参阅这篇关于 64 位代码的帖子:我应该选择利用 64 位吗?,它明确指出,例如 Paint.NET 在 64 位模式下工作得更好,因为开发人员针对 64 位优化了代码。
所以,我不认为你做错了什么,但也许你正在使用的第 3 方 .NET 程序集在 64 位进程中运行时可能会特别改进。
这不会让我感到惊讶。当您将应用程序设置为编译为“任何 CPU”时,CLR 会生成一个应用程序,用户机器上的抖动必须进一步编译该应用程序以最适合他们的体系结构。如果将其设置为“x86”,您的开发编译器将为 x86 机器编译应用程序,从而减少客户端抖动的负载。