C#的Stopwatch类是什么?如何精确地测量代码执行时间?


Stopwatch是C#中用于精确测量代码执行时间的类,位于System.Diagnostics命名空间下,基于系统高精度性能计数器,比DateTime.Now更准确,适合性能测试和耗时分析。它通过StartNew()启动、Stop()停止,Elapsed属性获取总耗时,ElapsedMilliseconds返回毫秒数。常用方法包括Start、Stop、Reset、Restart等。为提高准确性,建议在Release模式下多次运行取平均值,并避免GC等因素干扰。示例显示了单次和多次测量的实现方式,是C#中标准的时间测量方案。

c#的stopwatch类是什么?如何精确地测量代码执行时间?

Stopwatch 是 C# 中用于精确测量代码执行时间的类,位于 System.Diagnostics 命名空间下。它基于系统高精度性能计数器,比使用 DateTime.Now 更加准确,特别适合用来做性能测试、代码段耗时分析等场景。

Stopwatch 的工作原理

Stopwatch 利用系统的高分辨率性能计数器(如果可用),通过 CPU 的周期或硬件计时器来记录时间,因此精度远高于毫秒级的 DateTime。它不会受到系统时间调整(如用户修改时间、NTP 同步)的影响。

如何使用 Stopwatch 测量代码执行时间

基本使用步骤如下:

  • 调用 Stopwatch.StartNew() 创建并启动计时器
  • 运行要测量的代码
  • 调用 Stopwatch.Stop() 停止计时
  • 通过 Elapsed 属性获取总耗时(TimeSpan 类型)

示例代码:

Manus Manus

全球首款通用型AI Agent,可以将你的想法转化为行动。

Manus 250 查看详情 Manus
using System;
using System.Diagnostics;
<p>var stopwatch = Stopwatch.StartNew();
// 模拟一段耗时操作
for (int i = 0; i < 1000000; i++)
{
Math.Sqrt(i);
}
stopwatch.Stop();</p><p>Console.WriteLine($"耗时: {stopwatch.ElapsedMilliseconds} 毫秒");
Console.WriteLine($"更精确时间: {stopwatch.Elapsed.TotalSeconds:F6} 秒");</p>

常用属性和方法

  • Start() / Stop():手动控制启停
  • Reset():重置计时器(时间归零)
  • Restart():重置并重新开始
  • Elapsed:返回 TimeSpan,表示总耗时
  • ElapsedMilliseconds:以 long 返回毫秒数
  • ElapsedTicks:返回计时器滴答数(不是 DateTime 的 Ticks)

提高测量准确性的小技巧

  • 多次运行取平均值,避免单次测量受 GC、系统调度等干扰
  • 在 Release 模式下测试,Debug 模式会影响性能
  • 避免在测量期间进行无关操作(如打印日志)
  • 可配合 GC.Collect() 和 GC.WaitForPendingFinalizers() 预先清理垃圾,减少干扰

示例:多次测量取平均

var times = new List<long>();
for (int i = 0; i < 10; i++)
{
    var sw = Stopwatch.StartNew();
    // 要测试的方法
    MyMethod();
    sw.Stop();
    times.Add(sw.ElapsedMilliseconds);
}
<p>double *g = times.Average();
Console.WriteLine($"平均耗时: {*g:F2} 毫秒");</p>

基本上就这些。Stopwatch 简单高效,是 C# 中测量执行时间的标准做法。

以上就是C#的Stopwatch类是什么?如何精确地测量代码执行时间?的详细内容,更多请关注其它相关文章!


# c#  # 泰州网站建设目标定位  # 老牌网站seo按天计费  # 葛粉推广营销秘籍  # 广东seo网站排名哪家正规  # seo网站优化推广方法  # 中文网  # 相关文章  # 模式下  # 均值  # 实际应用  # 面向对象  # 之道  # 计时器  # 执行时间  # 性能测试  # ai  # 代码性能  # 通辽靠谱的网站建设  # 网站规划对网站建设  # 会员制营销模式推广案例  # 四川视频网站优化教程  # 沈阳浑南网站优化企业 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: c++20的指定初始化(Designated Initializers)怎么用_c++ C风格结构体初始化  Python中深度嵌套字典与列表的数据提取与条件过滤指南  微星主板BIOS怎么调整内存时序_内存参数手动优化BIOS设置教程  虫虫漫画绿色安全入口_虫虫漫画绿色安全入口安全看漫画  之了课堂app做题入口  泰拉瑞亚水晶无法放置问题  如何用Golang优化微服务间请求性能_Golang 微服务请求性能优化方法  百度识图图像分析 百度识图识别平台  批改网官网首页登录 批改网学生用户登录入口  《edge浏览器》关闭翻译功能方法  J*a中为什么强调组合优于继承_组合模式带来的灵活性与可维护性解析  Python项目中的条件导入:解决跨模块依赖问题  如何发挥新媒体矩阵作用?新媒体矩阵怎么搭建?  mysql中外键约束如何使用_mysql FOREIGN KEY操作  yandex网页版直接登录 yandex官方入口平台访问方法  视频号视频怎么提取文案?提取的文案如何优化与使用?  稻壳阅读器官方直达网址链接 稻壳阅读器文档阅读平台主页资源入口  更换小红书群背景怎么换?小红书群规则怎么设置?  Golang如何操作指针参数_Go pointer参数传递规则  Animex动漫社正版在线入口 Animex动漫社动漫官方观看网  《下一站江湖2》独孤剑诀习得方法  键盘测试软件哪个好_键盘故障检测工具推荐  宝妈做视频号该写什么标签话题?宝妈关注的话题有哪些?  《猎聘》筛选猎头岗位方法  composer licenses 命令:如何检查项目依赖的许可证?  如何使用 Optional 类型并满足 Pylint 的类型检查  如何在Golang中处理表单文件上传_Golang 表单文件上传示例  顺丰官方查单号入口 顺丰快递单号查询官网入口  《大学搜题酱》官网地址登录  火柴人战争网页版在线玩  海棠阅读网页版_进入海棠网页版在线阅读中心  《雷电模拟器》截图方法介绍  小米手机屏幕失灵乱跳怎么办 屏幕触控问题自检与临时解决方法【应急】  教育查询官方网站入口 教育个人档案查询免费官网  如何编写一个符合 composer 规范的 post-install-cmd 脚本?  SQLAlchemy 2.0 与 Pydantic 模型类型安全集成指南  在Peewee中处理PostgreSQL记录重复:一站式数据摄取教程  b站怎么查看视频的码率_b站视频码率查看方法  Firefox OS应用开发:解决XMLHttpRequest跨域请求阻塞问题  漫蛙漫画直连入口 _ manwa官方备用入口实时检测  百度地图离线地图无法加载如何解决 百度地图离线地图加载优化方法  WooCommerce购物车:强制显示所有交叉销售商品教程  PPT页面尺寸怎么修改 PPT自定义幻灯片大小与方向设置【教程】  Win11怎么录屏_Windows 11自带Xbox Game Bar录制视频  鲨鱼剧场app金币获取方法  Lar*el Dusk 测试中管理浏览器权限:以剪贴板访问为例  VS Code快捷键when上下文子句的妙用  todesk如何添加信任设备_todesk信任设备设置教程  PHP odbc_fetch_array 返回值处理:如何正确访问嵌套数组元素  京东物流快递破损了怎么办_京东快递破损理赔流程 

 2025-11-15

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.