C#中获取程序执行时间

C#中获取程序执行时间

在C#中,获取程序执行时间通常有以下几种方法:

1. 使用DateTime类

你可以在程序开始执行前获取当前时间,然后在程序结束时再次获取当前时间,通过这两个时间点计算程序执行时间。

cs 复制代码
using System;

class Program
{
    static void Main()
    {
        DateTime startTime = DateTime.Now;

        // 执行你的代码
        for (int i = 0; i < 1000000; i++)
        {
            // 示例:一个简单的循环
        }

        DateTime endTime = DateTime.Now;
        TimeSpan executionTime = endTime - startTime;

        Console.WriteLine("程序执行时间: " + executionTime.TotalMilliseconds + " 毫秒");
    }
}

2. 使用Stopwatch类

System.Diagnostics.Stopwatch类是测量时间的一种更精确的方法,特别是对于需要高精度计时的场景。

cs 复制代码
using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();

        // 执行你的代码
        for (int i = 0; i < 1000000; i++)
        {
            // 示例:一个简单的循环
        }

        stopwatch.Stop();
        Console.WriteLine("程序执行时间: " + stopwatch.ElapsedMilliseconds + " 毫秒");
    }
}

3. 使用Environment.TickCount或Environment.TickCount64(对于64位系统)

这种方法不如Stopwatch精确,但对于简单的性能测试或快速获取时间差也是可行的。

cs 复制代码
using System;

class Program
{
    static void Main()
    {
        int startTime = Environment.TickCount; // 或使用Environment.TickCount64对于64位系统以避免溢出

        // 执行你的代码
        for (int i = 0; i < 1000000; i++)
        {
            // 示例:一个简单的循环
        }

        int endTime = Environment.TickCount; // 或使用Environment.TickCount64对于64位系统以避免溢出
        int executionTime = endTime - startTime; // 注意:这将返回以毫秒为单位的整数,但不直接提供TimeSpan对象。

        Console.WriteLine("程序执行时间: " + executionTime + " 毫秒");
    }
}

总结:

对于大多数应用场景,推荐使用Stopwatch类,因为它提供了更高的精度和灵活性。如果你仅仅需要快速获取两个时间点之间的差异,并且不介意精度问题,那么使用DateTime类或Environment.TickCount/Environment.TickCount64也是可行的。选择哪种方法取决于你的具体需求和精度要求

相关推荐
huashengzsj44 分钟前
Shopify个人建站如何搭建独立站:从零开始的完整指南
前端·网络·人工智能
程序猿小泓1 小时前
从 Claude Code 学 Agent Harness:一个前端工程师的 AI Agent 学习笔记
前端·人工智能·学习
柒和远方2 小时前
从审计日志到可下载证据包:事务型 Outbox、租约 fencing 与保留水位
前端·后端·架构
云飞云共享云桌面2 小时前
单机建模卡顿运维繁琐!中小型机械制造厂云飞云 3D 云桌面落地
运维·服务器·网络·3d·自动化·电脑·负载均衡
minglie12 小时前
npm ali-oss库依赖冲突
前端·npm
xiaoshuaishuai82 小时前
C# AI实现PR处理、单元测试
开发语言·c#·log4j
LONGZHIQIN2 小时前
C#基础复习笔记
开发语言·笔记·c#
CryptoPP2 小时前
BSE股票K线数据接入实战:从接口调用到前端图表展示
大数据·前端·网络·人工智能·websocket·网络协议
湿韵轮回3 小时前
LangChain LCEL,用 | 串联AI的魔法语言
服务器·人工智能·langchain
Random_index4 小时前
#Vue3篇: Vue 项目发版后如何提示用户刷新?基于 package.json 版本号的前端更新检测方案
前端·vue.js·json