查找简单控制台C#程序消耗的内存

时间:2012-09-13 08:48:16

标签: c# c++ .net frameworks system.diagnostics

我需要找出简单的控制台C#程序所消耗的时间和内存。

.Net框架有秒表实用程序来完成第一项任务,

        Stopwatch sw = new Stopwatch();
        sw.Start();
        Process process = Process.GetCurrentProcess();
        long memoryUsedInBytes = process.WorkingSet64;

        //do something            

        sw.Stop();
        Console.WriteLine(sw.Elapsed.Milliseconds + "ms elapsed.\n" + memoryUsedInBytes/1000 + " KB consumed");

我们是否在框架中有一些简单的事情来查找简单控制台程序所消耗的内存,而不使用高级诊断技术。

编辑:附加内存使用的代码,如下面的答案,由Habib。

3 个答案:

答案 0 :(得分:3)

您可以获取当前process,然后使用属性WorkingSet64,您可以获得字节大小。

Process.WorkingSet64 Property - MSDN

  

获取为关联分配的物理内存量   过程

  

此属性可用于监视计算机上的内存使用情况   32位处理器或64位处理器。物业价值是   相当于该过程的工作集性能计数器。

Process process = System.Diagnostics.Process.GetCurrentProcess();
long memoryUsedInBytes = process.WorkingSet64;

答案 1 :(得分:2)

.NET进程公开了一组相当丰富的性能计数器。您可以使用Windows的性能监视器将计数器添加到图形,一般内存计数器(分配的字节等)或特定于.NET的计数器,如每个GC生成中的字节等:

enter image description here

答案 2 :(得分:1)