如何计算我的代码的内存使用,找出最好的方法c#

本文关键字:方法 内存 何计算 计算 代码 我的 | 更新日期: 2023-09-27 18:18:19

我正在做一个服务应用程序,它将连续运行,我需要照顾我的代码中的内存使用。

我使用Stopwatch类来计算代码性能,

对于例如)返回值vs Out参数-我只是使用更高迭代次数的for()循环计算这个,发现Out参数比从方法返回值花费的时间更少。

            int Iterations = 10000000;
            Stopwatch sw = Stopwatch.StartNew();
            for (int i = 0; i < Iterations; i++)
            {
                BigStruct bs = ReturnValue();
                total += bs.dec1;
            }
            sw.Stop();
            Console.WriteLine("Using return value: {0}",
                              sw.ElapsedMilliseconds);
            sw = Stopwatch.StartNew();
            for (int i = 0; i < Iterations; i++)
            {
                BigStruct bs;
                OutParameter(out bs);
                total += bs.dec1;
            }
      `Console.WriteLin`e("Using out parameter: {0}",sw.ElapsedMilliseconds);

相似的,我想计算我的代码的内存使用多少内存是采取,而将位图数组传递给另一个方法作为值类型参数。因此,我可以找出高内存使用并相应地更改我的代码。

所以这将极大地帮助我找到最好的方法,而不是谷歌所有…

谢谢。

如何计算我的代码的内存使用,找出最好的方法c#

自动内存管理(垃圾回收)系统的内存消耗.

在一种情况下,应用程序可能产生许多未处理的对象,而GC不会释放它们。在其他情况下,GC会主动释放内存。因此,应考虑将GC作为主动部分。

int[] gccounts = new int[GC.MaxGeneration + 1];
for (int i = 0; i &lt;= GC.MaxGeneration; i++)
    gccounts[i] = GC.CollectionCount(i);