首页 > 其他分享 >诊断工具——找到泄漏点

诊断工具——找到泄漏点

时间:2024-12-16 19:42:40浏览次数:3  
标签:泄漏 PerspectiveViewModel ProcessIndexStack VM 诊断 实例 内存 工具 PerspectiveView

C#若出现内存泄漏时可通过如下方式进行查找。

多次运行后在VS的诊断工具中截取内存快照,

然后点开内存快照,查看托管内存信息,如下图:

 

上图中PerspectiveViewModel是PerspectiveView页面的VM,理论上只有打开它时才会创建1个,离开这个页面时它会被GC回收。

 

但通过多次进入PerspectiveView来看,它的VM并没有被正常回收,导致其VM数量不断增加。如此在所有存在的PerspectiveViewModel中都可能会响应某一个事件,而此事件若是使用的某一个当前的其它类型实例,就有可能造成未知错误。

如PerspectiveView的实例现在存在3个,分别是PerspectiveView1、PerspectiveView2、PerspectiveView3,它们都持有一个原来宽度分别为w1=11,w2=12,w3=13,而传入到内部方法的变量为a1数组,它的宽度为大于w3,那么就会造成“index out of range”的错误。

 

回到上图,从图上为展开圈中的的路径显示情况,从上可以清楚的看到问题是由ProcessIndexStack造成的此问题。然后回到class中找到ProcessIndexStack方法或变量产生问题的原因(图中为方法),解决之即可。

图上的问题是由于某人在ProcessIndexStack方法中使用了SemaphoreSlim,但在使用完成后并没有将它及时Release,导致它所在的PerspectiveViewModel不能被GC回收,于是就会不断实例化PerspectiveViewModel。

 

标签:泄漏,PerspectiveViewModel,ProcessIndexStack,VM,诊断,实例,内存,工具,PerspectiveView
From: https://www.cnblogs.com/chengcanghai/p/18611013

相关文章

  • 数字人文工具 | 4CAT 捕获与分析工具包
    4CAT:The4CATCapture&AnalysisToolkit4CAT是一个研究工具,主要用于从在线社交平台捕获和分析数据。它的目标是通过一个网络界面,使数据的捕获和分析变得更加便捷,无需编程或网页抓取技能。以下是该工具的主要特点和功能:功能与特点目标用户:研究人员学生新闻工作者对数......
  • 11月AI榜单:洞察AI工具的流行趋势与商业价值
    2AGI.NET|探索AI无限潜力,2AGI为您带来最前沿资讯。AI榜单:11月随着人工智能技术的飞速发展,AI工具已经成为我们日常生活中不可或缺的一部分。本文将综合分析来自 2AGI.NET 的AI月榜、分类榜和收入榜,为您提供最新的AI工具流行趋势和商业价值的深度解析。AI月......
  • 五款实用报表工具推荐:助你轻松搞定数据可视化!
    概述本文将为大家介绍五款功能各异的报表工具,包括山海鲸报表、Canva、BIRT、Chart.js和Metabase。文章详细分析了每款工具的特点、优缺点以及适用场景,帮助企业用户根据自身需求选择合适的报表解决方案,以提高数据分析和可视化能力。1.山海鲸报表简介山海鲸报表是一款国产报表工......
  • JVM监控和性能分析工具
    JVM监控的重要性与目标重要性性能优化基础:JVM(Java虚拟机)是Java程序运行的基础环境,其性能直接影响Java应用的运行效率。通过监控JVM,可以了解内存使用情况、垃圾回收频率等关键指标,为性能优化提供数据支持。例如,一个Web应用如果频繁出现卡顿,可能是由于JVM内存不足或者垃圾回收......
  • converge许可管理工具和软件的选择
    随着企业数字化转型的步伐加快,团队协作和许可管理变得越来越重要。在众多许可管理工具和软件中,如何选择最适合您的Converge许可管理工具和软件呢?本文将为您提供一些指导建议,帮助您做出明智的选择。一、明确需求与目标在选择Converge许可管理工具和软件之前,首先要明确您的需求和......
  • 年底将至,又要备份邮箱了。推荐一个开源安全备份工具
    在当今数字化时代,电子邮件成为了我们日常工作和生活中不可或缺的沟通工具,其中存储着大量重要的信息,如工作文档、商务合作记录、个人重要事务沟通等。为了确保这些珍贵信息的安全性和可随时访问性,定期将邮件备份到本地是非常必要的操作。本教程将介绍如何使用imapdownloader......
  • imap邮件备份工具对比分析
    引言:邮件备份工具的重要性在现代信息时代,电子邮件作为日常沟通的重要工具,往往包含大量关键内容与附件。对于个人用户和企业来说,定期将邮件从服务器下载并备份到本地显得尤为重要。这不仅是防止数据丢失的一种保障,也是方便本地检索与长期存储的最佳方案。市面上虽然有许多......
  • 用好Todo清单工具,2024年实现高效时间管理
    大量研究表明,人类大脑并不擅长同时处理多项任务。在多任务处理时,大脑需要频繁切换注意力,每次切换都会消耗时间和精力,这种现象被称为“切换成本”(SwitchingCost)。心理学家Rubinstein、Meyer和Evans在2001年的研究中指出,任务切换会导致思维停顿,延长完成任务的时间。他们发现,在处理......
  • Volatility取证工具安装教程
    linux安装vol2.61.准备工作准备一台虚拟机,拥有python2版本(虚拟机以kali为例)准备Volatility2.6安装包volatilityfoundation/volatility:Anadvancedmemoryforensicsframework准备反编译库安装包vext01/distorm3:distorm32.安装步骤详解(全程在root用户下操作)(1)安装pip2......
  • Python 文件查重工具
    Python文件查重工具——循环删除重复文件1.简介:这是一个Python文件去重的工具,市面上很多检测重复工具的软件,都是要付费或者要破解的。于是就想着能不能自己做一个后台每时每刻都可以自己去重的工具。虽然市面上很多检测重复工具的软件.但是这个工具使用环境和那些工具......