测量代码使用的内存

时间:2012-11-03 20:46:39

标签: c# c++ c optimization performance

我想在C#或C ++或C中做一些更好的方法。
为了测量时间,我可以使用秒表类,但另外我想测量被消灭的代码保留的内存。您是否知道与下面的代码中使用的MemoryMeasure类具有相似属性的任何类或方法?

Stopwatch s1 = Stopwatch.StartNew();
MemoryMeasure m1 = MemoryMeasure.Start();
for (int i = 0; i < m; i++)
{
//some compute
//for example
//var x = new LargeObject(new SmallObject(), 45);
//some compute
//some compute
}
m1.Stop();
s1.Stop();

Console.Writeline("Your code was executed in " + s1.ElapsedMilliseconds + "ms");
Console.Writeline("Your code ate " + m1.UsedMemory + "MB of memory");

2 个答案:

答案 0 :(得分:4)

您需要使用内存分析器 - 有几种免费和商业工具。

dotTraceAnts memory profiler是两个受欢迎的商业广告。

还有a few free ones

答案 1 :(得分:2)

您可以尝试使用GC.GetTotalMemory静态方法,但我不确定以这种方式测量内存是个好主意。内存分析器是更好的选择