繁体   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