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 メモリ プロファイラーは、人気のある 2 つの商用プロファイラーです。

無料のものもいくつかあります。

于 2012-11-03T20:48:34.733 に答える
2

GC.GetTotalMemory 静的メソッドを使用してみることができますが、この方法でメモリを測定するのが良い考えかどうかはわかりません。メモリ プロファイラーの方がはるかに優れたオプションです

于 2012-11-03T20:50:44.357 に答える