C#计算代码执行时间的方法

c#实现统计代码执行时间 方法一:  //实例化一个计时器 Stopwatch watch = new Stopwatch(); //开始计时 watch.Start(); //此处为要计算的运行代码 for (int i = 1; i //结束计时 watch.Stop(); //获取当前实例测量得出的总运行时间(以毫秒为单位) string time = watch.Ela 阅读详情

转自:http://www.jb51.net/article/34938.htm

 

在一些测试工作时我们需要获得高精度的代码执行时间以比较其效率。
最近遇到一个模块其执行时间非常短,但是调用频率非常高。精确计算其运算时间对于提高程序整体效率来说非常重要。

在我刚刚接触.Net时,也曾经想要测试一下自己写的程序的运行时间,当时我使用的是将两个DateTime.Now相减的笨方法,呵呵。后来知道使用Environment.TickCount,对于一般的测试来说就足够了。但是它对于高精度测试就没什么办法,经常是返回个0了事。对于高精度测试我们应当使用QueryPerformanceFrequency函数和QueryPerformanceCounter函数。通过它们可以获得比Environment.TickCount更高的精确度。实际上Environment.TickCount就是在调用QueryPerformanceFrequency函数和QueryPerformanceCounter函数。

下面是我使用的代码:


复制代码 代码如下:
using System;

class Class1
{
 [System.Runtime.InteropServices.DllImport ("Kernel32.dll")]
 static extern bool QueryPerformanceCounter(ref long count);

 [System.Runtime.InteropServices.DllImport ("Kernel32.dll")]
 static extern bool QueryPerformanceFrequency(ref long count);

 [STAThread]
 static void Main(string[] args)
 {
 long count = 0;
 long count1 = 0;
 long freq = 0;
 double result = 0;

 QueryPerformanceFrequency(ref freq);
 QueryPerformanceCounter(ref count);

 //需要测试的模块

 QueryPerformanceCounter(ref count1);
 count = count1-count;
 result = (double)(count)/(double)freq;

 Console.WriteLine("耗时: {0} 秒", result);
 Console.ReadLine();
 }
}

 

这样能够得到非常精确的结果。但是模块每次运行的时间总会有些误差,而当计算非常精确的时候,这些运行时间的误差也显得比较明显了。为此我对其进行循环多次测试使其误差平均化,通过多次测试的结果来进行执行效率的分析。


复制代码 代码如下:
using System;

class Class1
{
 [System.Runtime.InteropServices.DllImport ("Kernel32.dll")]
 static extern bool QueryPerformanceCounter(ref long count);

 [System.Runtime.InteropServices.DllImport ("Kernel32.dll")]
 static extern bool QueryPerformanceFrequency(ref long count);

 [STAThread]
 static void Main(string[] args)
 {
 long count = 0;
 long count1 = 0;
 long freq = 0;
 double result = 0;

 QueryPerformanceFrequency(ref freq);
 QueryPerformanceCounter(ref count);

 //开始的时候没有这层循环,所得数据浮动很大,添加这层循环来使得结果更加平均
 for (int i=0; i<500; i++)
 {
 //需要测试的模块
 }

 QueryPerformanceCounter(ref count1);

 count = count1-count;
 result = (double)(count)/(double)freq;

 Console.WriteLine("耗时: {0} 秒", result);
 Console.ReadLine();
 }
}

 

C#中的秒表 计算程序运行了多长时间 System.Diagnostics.Stopwatch


复制代码 代码如下:
private void button1_Click(object sender, EventArgs e)
{
Stopwatch myWatch = new Stopwatch();
myWatch.Start();
for (int i = 0; i < 1000; i++)
{
Console.WriteLine("just test" + i);
}
myWatch.Stop();
long myUseTime = myWatch.ElapsedMilliseconds;
MessageBox.Show("執行時間: " + myUseTime.ToString() + " ms");
}

uni-app - 在纯 JS 文件中调用自定义弹框组件 / 封装全局 API 调用弹框组件(解决小程序、APP 无法使用 document.body.appendChild 插入组件节点)适配全端 uni-app-在纯JS文件中调用自定义弹框组件/封装全局API调用弹框组件(解决小程序、APP无法使用document.body.appendChild插入组件节点)适配全端,uni-appappendChild怎么向小程序中插入节点,如何开发类似uni.showModal全局组件。h5端可以通过document.body.appendChild挂载,请问app跟微信小程序怎么弄,请问uniapp如何封装全局api调用弹窗组件?uniapp怎么设置所有页面共用的组件Uni 阅读详情

相关推荐

win10下面安装MTK USB VCOM 驱动

win10下面安装MTK USB VCOM 驱动1.概述2.驱动准备3.主要步骤3.1禁用win10对没有签名驱动限制3.2通过设备管理器安装mtk usb vcom驱动3.3工具版本问题4.禁用win10对没有签名的驱动限制4.1在设置中打开 更新和安全4.2进入恢复4.3在高级启动中点击立即重新启动4.4电脑重启后的几个动作5.通过设备管理器安装MTK USB VCOM 驱动5.1准备驱动5....

qimi123456的专栏 3万+

C#计算代码执行时间

在一些测试工作时我们需要获得高精度的代码执行时间以比较其效率。最近遇到一个模块其执行时间非常短,但是调用频率非常高。精确计算其运算时间对于提高程序整体效率来说非常重要。 在我刚刚接触.Net时,也曾经想要测试一下自己写的程序的运行时间,当时我使用的是将两个DateTime.Now相减的笨方法,呵呵。后来知道使用Environment.TickCount,对于一般的测试来说就足够了。但是它...

weixin_30332241的博客 202

千兆以太网PHY设计:PCB原理图完整示例

深入解析千兆以太网PHY电路设计要点,提供完整的PCB原理图设计实例,帮助工程师掌握高速信号布局与电源去耦等关键技术,提升设计稳定性与信号完整性。

weixin_30633869的博客 628

visual studio 统计程序运行时间

# include "time.h" void main() { clock_t start_time, end_time; start_time = clock(); //获取开始执行时间 xxxxxxx; //过程 end_time = clock(); //获取结束时间 double Times = (double)(end_time - start_time) / CLOCKS_PER_SEC; printf("%f secon

jerry的博客 5646

用Linkboy玩转Arduino:3小时搞定智能倒车雷达(附仿真文件下载)

本文详细介绍了如何利用Linkboy图形化编程工具,在3小时内快速搭建一个基于Arduino的智能倒车雷达项目。通过仿真环境,初学者无需硬件即可学习超声波测距原理、报警逻辑设计,并完成从虚拟仿真到实体硬件的完整流程。文章提供了清晰的步骤、调试技巧及功能扩展思路,并附有仿真文件,是入门Arduino和智能硬件制作的绝佳实践指南。

weixin_29159441的博客 402

Halcon深度学习实战:基于异常值检测的工业缺陷精准识别方案

本文详细介绍了Halcon深度学习中的异常值检测技术在工业缺陷识别中的应用。该方法仅需少量正常样本即可训练,能有效应对未知、多变的缺陷类型,显著降低项目启动门槛。文章提供了从数据准备、模型训练、参数调优到产线部署的完整实战指南,并分享了关键的性能优化与避坑经验。

weixin_29042035的博客 242

【C#】 三种计算程序运行时间的方法

【C#】 三种计算程序运行时间的方法

欢迎指错||纠正||建议||水评+点赞&&评论&&关注&&转发 9879

英飞凌TC3XX芯片---------CAN模块详解

CAN 总线是一种广泛应用于汽车、工业控制和其他领域的串行通信协议,CAN 英文名称:Controller Area Network。最初由德国的 Bosch 公司开发,用于汽车电子系统之间的通信。CAN 总线具有高可靠性、抗干扰能力强和实时性好等特点,因此被广泛应用于需要可靠数据传输的领域。CAN2.0B 协议中的 CAN 最多支持 29 位 ID,但是网络架构中使用的一般是 11 位的标准帧 ID。如下图是标准 CAN FD 帧数据结构:关于 CAN 协议相关内容,本文不作阐述。

sky的博客 3666

C# 计算耗时的三种方法

计算一段程序的耗时是我们在编程中很常见的用法,那这节内容就通过实例的方式来演示几种常用的统计耗时的方法.

m0_66652282的博客 1435

OpenClaw 技能编排实战|如何组合多个技能完成复杂任务链

多技能协作的设计思路;技能链的执行顺序控制;案例:自动监控新闻 → 摘要生成 → 发送到飞书的一站式自动化流程。

我是一个扣子,优快云博客专家,阿里云专家。专注AI(代码智能体、OpenClaw、AI视频制作)与Java全栈(Java、MySQL、Redis)实战。坚持AI赋能开发,输出有深度的技术内容。 535

9篇3章7节:基于 R 语言的 FAERS 数据提取与合并

本文主要探讨了 FAERS 数据提取与合并的操作流程。首先,通过程序化方法从本地存储的 FAERS ASCII 文件中提取指定季度或范围内的单药报告数据,并可通过参数设置控制数据存储位置、处理方式、计算资源分配以及报告者职业类别等。随后,通过批量读取的方式对多个季度的 DRUG 文件进行循环处理,并将其合并为一个综合数据框。

MD Code 1261

C# 计算程序运行时间

C# 使用Stopwatch类来计算程序的运行时间

weixin_53482897的博客 3229

微信小程序 - 最新详细实现调起手机摄像头拍摄身份证人像面和国徽面取景框功能,在拍照相机上增加身份证证件照的轮廓或自定义文字,支持替换扫描拍摄辅助线图片及文本,小程序实现拍照身份证时带取景轮廓框拍摄!

微信小程序,身份证,证件照,人像,证件照提示框模板,vue身份证拍照框,摄像机相机里有引导内容,取景框拍摄,微信小程序实现拍照界面自定义实现,自拍人相框拍摄,取景框,户口簿取景框,画布指定区域生成图片,微信小程序身份证正反面拍照如何加入辅助图片引导照片,身份证取景框拍摄,服务器,上传,正反面,调起手机摄像头: 拍摄身份证的正反面,自定义身份证取景框,在相机上绘制 “身份证轮廓“ 与提示文字,拍摄身份证时出现人像框怎么实现,在相机上增加图片和文字,微信小程序怎么给调起的相机加入自定义图片,小程序实现给相机上面

🏆 前端领域优质创作者 3403

C#如何计算代码执行时间

方法一: using System.Diagnostice;//导入该命名空间 Stopwatch watch=new Stopwatch ();//实例化一个计时器 watch.Start();//开始计时 /* 此处为要计算的运行代码 例如: int sum=0; for(int i=0; i<100;i++) { for(int j=0;j...

weixin_30872867的博客 79

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

c#统计代码执行时间

c#统计代码执行时间

lzz555517的博客 3688

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C# TimeSpan类计算程序执行的时间及此类的其他常用方法

<br /> private void Form1_Load(object sender, EventArgs e) { TimeSpan ts1 = new TimeSpan(DateTime.Now.Ticks); //获取当前时间的刻度数 //你的代码或者其他操作 double dout = 1; for (int i = 1; i <= 10; i+

ZHENNIUBILE的专栏 2087

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C#中计算耗时

C#中计算耗时 DateTime StartTime = DateTime.Now; ControlForm.show_info(LCDForm.Rsee_Handle.Rsee_DIST_Run()); DateTime EndTime = DateTime.Now; string Duration = (EndTime- StartTime).ToString(); string Start = ProStartTime.ToString(); string End = ProEndTime.To

Major_S的博客 459

c# 差值 获取时间_C#计算时间差中

c#计算时间差重点:c#计算时间差函数TimeSpan的应用TimeSpan值包含了许多属性与方法,用于访问或处理一个TimeSpan值下面的列表涵盖了其中的一部分:Add:与另一个TimeSpan值相加。Days:返回用天数计算的TimeSpan值。Duration:获取TimeSpan的绝对值。Hours:返回用小时计算的TimeSpan值Milliseconds:返回用毫秒计算的TimeSp...

weixin_42349978的博客 401

C#计算一段程序运行时间的三种方法

直接代码: 第一种方法利用System.DateTime.Now [csharp] view plain copy static void SubTest()   {       DateTime beforDT = System.DateTime.Now;            //耗时巨大的代码              DateT

z767327552的专栏 2360

C# 代码中 计算某个函数 或WebService 请求花费时间

/// 计算请求所花费的时间 System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch(); watch.Start(); /// 监控的代码 (要测试的函数等) watch.Stop(); TimeSpan timespan = watch.Elapsed; // 获取当前实例测量得出的总时...

aoshuaihuang9603的博客 252

计算单步运行时间 计算程序运行时间

C#代码里面计算代码运行时间方法: DateTime timeBegin = DateTime.Now; { ...//处理语句,一句代码也好,多条语句也行 } DateTime timeEnd= DateTime.Now; TimeSpan span = timeEnd- timeBegin; double seconds = span.TotalSeconds;

aphy358的博客 704

用C#计算程序执行的时间间隔

需要知道程序中某个操作执行了多久,可用类似如下的代码计算得知: TimeSpants1=newTimeSpan(DateTime.Now.Ticks);//获取当前时间的刻度数//执行某操作TimeSpants2=newTimeSpan(DateTime.Now.Ticks);...

weixin_30696427的博客 149

C#获取程序运行时间

C#获取获取程序运行时间的方法

QQVQQ的博客 7424

时间相减

以前将看过一个论坛的源码,有这么一个用来得出当前页共执行的毫秒。protected DateTime dtStartTime = DateTime.Now;protected DateTime intRunTime= DateTime.Now;intRunTime = (int)(DateTime.Now - dtStartTime).TotalMilliseconds;不知道在C#里是否能这样就

wzrjyq的专栏 681

C# 计算某段代码运行时间

方法一 usingSystem; private void SubTest() { DateTime beforDT = DateTime.Now; //需要计时的代码 DateTime afterDT = DateTime.Now; TimeSpan ts = afterDT.Subtract(beforDT); Console.W...

ciyiquan5963的博客 730
上一篇: 维护代码库的五个精华实践
下一篇: 独立开发者的自白:Objective-C最糟糕的13件事
UU_Yang
博客等级 码龄23年 927粉丝 213原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值