1
2
当内存达到可疑的高水平时,您需要暂停调试器,然后使用“拍摄快照”获取内存分配的快照。然后,您可以分析哪些对象使用了不同数量的内存。 见 this link 有关使用诊断工具测量内存使用情况的详细信息。 |
2
1
这也很大程度上取决于你在做什么,也就是说,你有一个巨大的文件吗?或者你有上千个或者上百万个更小的物体、文件或者图像? 我最近遇到的一个内存使用率很高的情况是System.Graphics中的句柄,我的句柄(任务管理器->性能、系统句柄)和内存的数量都在不断增长,而且远远超过了它们应该有的数量。我忘记了每次迭代处理10个位图。我在那些位图上调用了dispose(),它解决了我的问题。 使用vs的内存快照,您可以获取多个快照并进行比较,以查看更改了什么。我使用任务管理器和使用vs的托管内存工具一样多。您可以使用任务管理器的->进程查看正在进行的操作。通过单击“查看”->选择列,可以添加列以跟踪对象,如句柄、线程和GDI对象。 |
payloc91 · 存储地图中的条目是否安全?它会导致内存泄漏吗? 6 年前 |
pjj · 如果GC'ed是弱可达对象,那么为什么会出现OOM错误 6 年前 |
K.R. · RxJava行为主体和使用者-这里是否存在内存泄漏? 6 年前 |
eaglefreeman · 意外的R内存管理行为 6 年前 |
areify · 如何避免此代码中的内存泄漏? 6 年前 |