是否可以分析单元测试的内存使用情况?

时间:2010-05-28 15:11:12

标签: c# .net visual-studio unit-testing red-gate-ants

我正在考虑使用Visual Studio附带的单元测试框架来构建一些单元测试,以确定资源是否泄漏(<或p>)。

目前,我正在评估ANTS Profiler的最新版本,但如果它允许我从代码强制创建快照,那么我就无法解决这个问题(这样我就可以拍摄快照,运行单元测试一些一百次,强制进行垃圾收集,然后拍摄另一张快照,并保存结果以供以后分析。)

这可能与ANTS / Visual Studio有关,还是我应该与其他分析器一起探索选项?

4 个答案:

答案 0 :(得分:6)

你见过JetBrains的dotmemory吗?

dotMemory Unit是一个单元测试框架,允许您编写测试 检查代码是否存在各种内存问题。

例如:

  

当您需要简单地评估a中分配的内存量时   测试时,可以使用AssertTraffic属性。这个灵活的属性   允许您按对象类型,接口或过滤来过滤流量数据   命名空间。

答案 1 :(得分:2)

JetBrains dotTrace / dotMemory和ReSharper在单元测试和分析方面有更好的集成。

http://www.jetbrains.com/profiler/index.html

不确定ANTS是否有此类集成,但您可以参考Red Gate预售,对吗?

http://www.red-gate.com/about/all_testimonials.htm

他们希望您打电话给他们以获取更多信息。

答案 2 :(得分:1)

我使用ANTS探查器,我觉得最方便的是将探查器连接到正在运行的测试过程,这可能会有所不同,具体取决于您使用的测试框架。例如,我使用Resharper,过程映像名称称为:

JetBrains.ReSharper.TaskRunner.CLR ...

答案 3 :(得分:0)

对于未来的读者,值得一提的是,您可以使用ANTS Memory Profiler在代码中强制创建快照。你需要参考

RedGate.MemoryProfiler.Snapshot.dll

包含在ANTS安装目录中。然后,您可以通过调用

拍摄快照

RedGate.MemoryProfiler.Snapshot.TakeSnapshot(“可选快照名称”)

Full details here