一、前言
有时候为了知道一段代码的运行效率,我们想知道某段代码运行所耗费的时间,这时可以用Stopwatch类,需要引用System.Diagnostics;
二、测试程序
Stopwatch的功能非常简单,它之后一个不带参数的构造方法,构造出对象后调用Start方法即可让计时器开始运行,调用Stop方法让计数器停止运行,Elapsed属性记录的就是时间,测试程序如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | using System; using System.Diagnostics; namespace test { class Program { static void Main( string [] args) { string s = "" ; Stopwatch sw = new Stopwatch(); sw.Start(); for ( int i = 0; i < 100000; i++) { s += i; } sw.Stop(); Console.WriteLine(sw.Elapsed); Console.ReadKey(); } } } |
运行结果:
可以知道被sw.Start();和sw.Stop();包夹的那段代码运行时间为16秒多。代码第21行Elapsed属性得到的是TimeSpan对象,如果用Console.WriteLine()输出的话得到的是“时:分:秒.毫秒”格式,如果换成ElapsedMilliseconds属性那得到的就是毫秒时间,如果用ElapsedTicks得到的是节拍数。将节拍数除以Frequency得到的就是时间,单位:秒。注意Frequency是静态字段,要直接通过类名访问,不能通过对象名访问。
其他功能也比较简单,通过类定义一看就知道。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?