如何测量 C# 控制台应用程序运行时间?
Posted
技术标签:
【中文标题】如何测量 C# 控制台应用程序运行时间?【英文标题】:How to measure C# console application running time? 【发布时间】:2011-04-06 22:37:03 【问题描述】:我需要构建一个运行时间不到 1 秒的应用程序,但我不知道如何确定运行时间。
【问题讨论】:
说“一个密西西比”。如果你必须把最后一个 i 变成一个 eeee,那就太慢了。否则这个问题太模糊了。第一次运行和第二次运行是不一样的。 【参考方案1】:在初始化时设置Stopwatch 并在退出时检查其Elapsed 属性。
【讨论】:
【参考方案2】: using System;
using System.Diagnostics;
//Setting a Stopwatch
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < length; i++)
//some logic there
//Stopping a Stopwatch
sw.Stop();
Console.WriteLine(sw.Elapsed);
//delay
Console.ReadLine();
这是一个使用秒表的简单示例。 但是不要忘记写“using System.Diagnostics;”,否则秒表将无法创建。
【讨论】:
欢迎来到 Stack Overflow Dmitriy Yermolenko。请解释您的答案的作用,以便问题的作者能够理解。更多信息请参考"How do I write a good answer?"和Help Center【参考方案3】:如何使用 Stopwatch 类。
http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx
特别注意 MSDN 上的注释
在多处理器计算机上,线程在哪个处理器上运行并不重要。但是,由于 Bios 或硬件抽象层 (HAL) 中的错误,您可以在不同的处理器上获得不同的计时结果。要为线程指定处理器亲和性,请使用 ProcessThread.ProcessorAffinity 方法。
【讨论】:
【参考方案4】:如果您编写,控制台应用程序不会关闭 Console.ReadLine();
【讨论】:
【参考方案5】:你也可以获取程序开始和结束的时间,并减去它
http://msdn.microsoft.com/en-us/library/system.datetime.now.aspx
【讨论】:
在时钟变化时您碰巧测量的(不太可能的)事件中使用 DateTime.UtcNow 可能会更好。 有道理。自从我与 c# 的事务以来已经有一段时间了以上是关于如何测量 C# 控制台应用程序运行时间?的主要内容,如果未能解决你的问题,请参考以下文章
c#程序,textbox如何设置文本居中显示?如何按行读取文本文件内容?