2010-11-18 40 views
4

當我編譯我的應用程序到目標版本4.0的框架時,UI性能直奔地獄。例如,打開包含可能具有6個標籤和文本框控件的網格的擴展器從接近瞬時變爲3-4秒,並且在呈現網格的第二列(可編輯控件)和該網格的第二列之間存在可見延遲首先(他們的標籤)。將WPF項目從3.5遷移到4.0後可能導致性能下降的原因是什麼?

如果我回到3.5,一切都會回到原來的樣子:打開擴展器和查看其內容之間幾乎沒有任何延遲,並且網格中的標籤渲染得太快以至於看不到它發生。

當然,有一百萬件事情可能會導致這種情況。我想我希望有人能告訴我的是我應該開始尋找的地方。我不需要現在需要升級到4.0,所以我沒有巨大的動力來挖掘這個野獸的特徵,但如果我在3.5時坐在這裏累積技術債務,我想了解它。

回答

-1

也許您正在使用或濫用WPF 4.0的新功能之一?

我首先調查這個列表,看看是否有任何東西遠程適用於應用程序。

好運

What's new in WPF 4.0 (list)

+3

爲3.5編寫的應用程序似乎不大可能會濫用 - 或者在這方面使用4.0的新功能。 – 2010-11-18 08:58:39

3

這的確是一個奇怪的發生,現在我已經遷移兩個沉重WPF3應用到4沒有問題(忽略一對夫婦的資源問題),但如果有的話其提高了我們的運行時間性能相當不錯。

雖然不是你的問題的直接答案,但當我們轉移到WPF 4時,我遵循the write up by Paul Harrington。我也花了相當多的時間與the WPFPerf tool - 我意識到你不想簡介!

我能想到的唯一的另一件事是WPF4 vs WPF3.5中的圖形渲染層的更改。這導致其中一個測試人員意識到他的測試盒正在軟件渲染中運行(硬件加速因圖形驅動程序更新不良而被禁用)。 RenderOptions.ProcessRenderMode是你的朋友在這裏檢查。但我想你會運行在一個體面的工具包無論如何:)

2

您可能使用了一個爲.NET 3.5編譯的DLL,它強制大量的3.5 DLL,只要其中一個需要它的類型被構建。檢查以確保所有的DLL都是4.0版本。

相關問題