WPF 4.0 中关于 AutomationPeer引起的内存泄露问题(AutomationPeer Memory Leak)

在WPF 4.0应用程序中遇到内存泄露问题,离开页面后内存未释放。通过ANTS Memory Profiler定位到与AutomationPeer相关,发现Table PC Input Service是罪魁祸首,特别是在带有触摸屏的设备上。关闭该服务解决了问题,但也存在其他可能导致内存泄露的因素。
摘要由CSDN通过智能技术生成

最近在做一个基于WPF 4.0 的公司产品框架测试的时候,发现了一个非常奇怪的内存泄露问题。

 

基本现象是这样的,当我离开某一个页面的时候,发现内存不会被释放,这样来来往往几十次之后,发现程序会慢慢耗尽所有的内存。但是代码里面是有显式的释放所有的资源的,那这个问题就非常奇怪啦,难道是WPF 4.0里面缺陷,还是自己的代码内部有没有被发现的Bug。

 

下面是2次页面切换后的内存使用情况,应用程序在此过程中吃掉了150多M的内存空间。

 

没办法,只能求助于内存分析工具啦,在此推荐两个个人感觉比较好用的两个

  1. ANTS Memory Profiler 
  2. .NET Memory Profiling

我用的是ANTS Memory Profiler 7.4的试用版本,这个工具是redgate出的,大家应该不会陌生的(.net reflector发编译工具就是它出的)。最终发现原来和Automa

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值