1
7
当托管类型使用非托管资源时,常常会引入内存泄漏。
您可以通过执行类似以下操作来为此场景编写单元测试:
|
2
5
做 事实上,如果存在资源泄漏,您可能会使用在其契约中包含显式Close/Dispose的对象(用于“使用…”构造)。在这种情况下,如果您可以控制类型,则可以从对象的Dispose实现中标记对对象的处置,以验证它们实际上已被释放,前提是您可以忍受生命周期管理泄漏到类型的接口中。 如果执行后一种操作,就可以对契约式处理进行单元测试。在某些情况下,我使用了与IDisposable(扩展该接口)等效的特定于应用程序的方法来添加查询对象是否已被释放的选项。如果在类型上显式实现该接口,则不会对其接口造成太多污染。 如果您无法控制所讨论的类型,那么您所需要的工具就是内存探查器(如其他地方所建议的)。(例如 dotTrace |
3
1
你不需要单元测试你需要内存分析器。你可以从 CLR Profiler. |
4
1
|
5
0
如何创建对象?直接或某种可以控制的方式。如果可控返回带有终结器的扩展版本,终结器注册它们已被释放。那么
|
6
0
比如说:
|
payloc91 · 存储地图中的条目是否安全?它会导致内存泄漏吗? 6 年前 |
pjj · 如果GC'ed是弱可达对象,那么为什么会出现OOM错误 6 年前 |
K.R. · RxJava行为主体和使用者-这里是否存在内存泄漏? 6 年前 |
eaglefreeman · 意外的R内存管理行为 6 年前 |
areify · 如何避免此代码中的内存泄漏? 6 年前 |