我有一个 VB.NET 应用程序(带有 C# 库),随着时间的推移,它会消耗大量内存。最终应用程序耗尽内存。我对使用这个词持谨慎态度leaking因为 GC 不应该允许内存泄漏,但也许某处有一个大的 .NET 对象。如果是这样我需要识别它。
不过,我确实参考了第 3 方 ActiveX 控件库 (.ocx),我使用其中的一些控件并进行多次调用来检索激光束轮廓数据。仅当我运行循环从 ocx 检索激光束轮廓数据时,内存使用量才会增加。我怀疑是 ocx,但在联系供应商之前需要确定。
我在 Visual Studio 2017 诊断工具中调试了我的应用程序记忆工具已启用,并且选项内存 通过快照启用本机堆分析已启用。
我的问题是,我在诊断工具的“内存使用情况”选项卡中根本看不到图表中的大量内存。 30 分钟后,我的应用程序大小约为 2GB,并且是 x86 应用程序,这是一个问题 - 无论 CPU 架构如何。也许我看错了东西。
那么我做错了什么来发现内存问题呢?我怎样才能找到违规对象?
Update 1
我运行了性能分析器,但没有看到诊断工具所见的内存有任何增加。任务管理器还确认使用性能分析运行时不存在内存泄漏。之后运行而不进行分析再次显示内存泄漏。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)