当我将我的应用程序编译到目标版本的4.0框架时,UI性能直接下降到地狱。例如,打开包含可能有6个Label和TextBox控件的Grid的Expander从近瞬时到3-4秒,然后在它渲染网格的第二列(可编辑控件)和首先(他们的标签)。
如果我回到3.5,一切都会回到原来的样子:打开扩展器和看到它的内容之间几乎没有任何延迟,并且网格中的标签渲染得如此之快,以至于你无法看到它发生。
当然,有一百万件事可能会导致这种情况发生。我想我希望有人可以告诉我的是我应该开始寻找的地方。我现在并不特别需要升级到4.0,所以我没有很大的动力来挖掘这个野兽的分析,但如果我在3.5时坐在这里积累技术债务我想知道它。
答案 0 :(得分:3)
这确实是一个奇怪的事情,我现在已经将两个重型WPF3应用程序迁移到4个没有问题(忽略了一些资源问题)但是如果有的话它很好地改进了我们的运行时性能。
虽然不能直接回答你的问题,但当我们转到WPF 4时,我跟着the write up by Paul Harrington。我也花了很多时间与the WPFPerf tool - 我意识到你不想轮廓!
我唯一能想到的是WPF4 vs WPF3.5中图形渲染层的更改。这导致其中一个测试人员意识到他的测试盒正在软件渲染中运行(由于图形驱动程序更新错误导致硬件加速被禁用)。 RenderOptions.ProcessRenderMode是您在这里检查的朋友。但是我猜你无论如何都会使用相当不错的套件:)
答案 1 :(得分:2)
您可能正在使用为.NET 3.5编译的DLL,一旦需要构建其中一种类型,就会强制加载大量3.5 DLL。检查以确保所有DLL都是4.0。
答案 2 :(得分:-1)