簡體   English   中英

WPF DropShadowEffect和Blur內存泄漏

[英]WPF DropShadowEffect and Blur memory leaks

我正在編寫一個應用程序,它本質上是一堆松散的xaml屏幕 - 沒有代碼隱藏,只是在運行時動態鏈接到ViewModel。

在一台舊電腦上運行這個周末,發生了一次崩潰。 跟蹤和重新創建顯示igdumd32.dll(一個英特爾圖形驅動程序DLL)中存在內存泄漏。 經過一番調查后,我在中心屏幕上編寫了2個簡單的獨立應用程序和一個非常簡單的動畫。 1沒有效果,1對動畫有影響效果 - 沒有其他變化,字面意思是對第一個應用程序的1行更改(xaml非常詳細,否則我會在這里發布)。 我通過redgate的內存分析器工具運行了40分鍾。 第一個很好: 在此輸入圖像描述 但是第二個在igdumd32.dll和托管代碼分配的內存上有明顯的內存泄漏: 在此輸入圖像描述

我注意到的另一件事是,這不會發生在新的電腦上。 查看igdumd32.dll的版本 - 較舊的PC具有2009版本(8.15.10.1930),而較新(工作)的PC具有2012版本(8.15.10.2639)。

還有其他人經歷過這個嗎? 我的想法是只在xaml中使用特殊效果,當芯片組/驅動程序可以處理這個時,但我在網上或MSDN上找不到任何告訴我這些效果的硬件或驅動程序限制的內容(除了告訴我硬件加速是他們或我的CPU需要提升)。

你在WPF的早期迭代中的DropShadow和Blur效果是在軟件中實現的(在WPF本身內,也就是說)並且可能沒有泄漏內存的問題。 稍后(4.0及更高版本)略微更改了語法,並添加了將這些效果卸載到圖形硬件的功能。 雖然這確實提高了執行速度,但它也依賴於圖形驅動程序以避免泄漏內存。 您可以更改代碼以在WPF本身中實現這些代碼,或者像您已經擁有的那樣 - 為圖形驅動程序提供硬編碼的外觀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM