我需要找出简单的控制台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。
答案 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生成中的字节等:
答案 2 :(得分:1)
好像垃圾收集器可以帮助你
http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/8bfa495b-bed2-40fd-adbd-cb998b74af32
GC.GetTotalMemory()