• C#中获取代码执行时间的方法


    在C#中,您可以使用System.Diagnostics.Stopwatch类来测量代码执行时间。以下是一个简单的示例:

    using System.Diagnostics;
    public static double MeasureExecutionTime(Action action)
    {
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();
    
        action.Invoke();
        stopwatch.Stop();
        
        // Return elapsed time in milliseconds
        return stopwatch.Elapsed.TotalMilliseconds;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这个函数中,Action action参数代表您要测试的代码块。这个函数首先创建了一个Stopwatch实例,然后开始计时,执行代码,停止计时,最后返回经过的毫秒数。

    以下是如何使用这个函数:

    double elapsedTime = MeasureExecutionTime(() => 
    {
        // Replace this with the code you want to measure
        for (int i = 0; i < 1000000; i++)
        {
            int x = i * i;
        }
    });
    
    Console.WriteLine("Execution Time: " + elapsedTime + " ms");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这个示例中,我们计算了一个简单循环的执行时间。当然,你可以替换为你自己的代码。


    Stopwatch 类在 C# 中用于测量代码执行时间。它包含以下主要属性:

    Elapsed

    表示从开始到当前时间经过的时间。该属性返回一个 TimeSpan 对象,表示以秒为单位经过的时间。

    Stopwatch stopwatch = new Stopwatch();
    stopwatch.Start();
    // 执行一些代码...
    TimeSpan elapsedTime = stopwatch.Elapsed;
    Console.WriteLine("Elapsed time: " + elapsedTime.ToString());
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ElapsedMilliseconds

    表示从开始到当前时间经过的毫秒数。该属性返回一个双精度浮点数,表示以毫秒为单位经过的时间。

    Stopwatch stopwatch = new Stopwatch();
    stopwatch.Start();
    // 执行一些代码...
    double elapsedMilliseconds = stopwatch.ElapsedMilliseconds;
    Console.WriteLine("Elapsed time in milliseconds: " + elapsedMilliseconds);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ElapsedTicks

    表示从开始到当前时间经过的时钟滴答数。该属性返回一个长整型数,表示经过的时钟滴答数。

    Stopwatch stopwatch = new Stopwatch();
    stopwatch.Start();
    // 执行一些代码...
    long elapsedTicks = stopwatch.ElapsedTicks;
    Console.WriteLine("Elapsed time in ticks: " + elapsedTicks);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    IsRunning

    一个布尔值,指示 Stopwatch 实例是否正在计时。如果 Stopwatch 实例正在计时,则为 true;否则为 false。可以使用 Start() 和 Stop() 方法来控制计时器状态。

    Stopwatch stopwatch = new Stopwatch();
    bool isRunning = stopwatch.IsRunning;  // 初始状态为 false
    stopwatch.Start();
    isRunning = stopwatch.IsRunning;  // 执行 Start() 后为 true
    // 执行一些代码...
    stopwatch.Stop();
    isRunning = stopwatch.IsRunning;  // 执行 Stop() 后为 false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    Frequency

    表示计时器的频率,即每秒的滴答数。该属性返回一个双精度浮点数,表示计时器的频率。可以用于计算单位时间内执行的时钟滴答数。

    Stopwatch stopwatch = new Stopwatch();
    double frequency = stopwatch.Frequency;  // 返回计时器的频率(每秒的滴答数)
    
    • 1
    • 2
  • 相关阅读:
    【NestJS系列】从Nest CLI开始入门
    基于C++实现表达式转换
    C语言:动态内存分配(2)
    C++入门基础知识(2)
    将JSON数据转换成JAVA的实体类
    计算机毕业设计(附源码)python足球新闻发布管理系统
    【第四部分 | JavaScript 基础】2:运算、控制流程、数组
    多线程(基础) - 4万字总结
    ES9023发烧级音频DAC声卡解码器资料
    3.3.2JavaScript网页编程——WebAPI(JS之DOM网页特效篇)
  • 原文地址:https://blog.csdn.net/weixin_44171249/article/details/134005468