繁体   English   中英

测量代码使用的内存

[英]Measure memory used by code

我想用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");

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

dotTraceAnts内存分析器是两种流行的商业工具。

还有一些免费的

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM