2

我想在 C# 或 C++ 或 C 中改进一些方法。
为了测量时间,我可以使用 Stopwatch 类,但另外我想测量由已删除代码保留的内存。您知道任何与下面代码中使用的 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");
4

2 回答 2

4

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

dotTraceAnts 内存分析器是两个流行的商业分析器。

还有一些免费的

于 2012-11-03T20:48:34.733 回答
2

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

于 2012-11-03T20:50:44.357 回答