如何测量 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如何设置文本居中显示?如何按行读取文本文件内容?

如何在后台连续运行 C# 控制台应用程序

如何在隐藏控制台的情况下运行 C# 控制台应用程序

当所有进程都在 c# 的单独线程上运行时,如何保持控制台应用程序打开?

如何在 C# 中隐藏控制台应用程序

如何在 C# 的控制台应用程序中使用键盘输入停止正在运行的方法?