Stopwatch的ElapsedTicks与Elapsed.Ticks不相等[10000Ticks=1Milliseconds]

问题描述

实测数据数据:(End-Start).TotalMilliseconds:16.0009(ms)Elapsed.Ticks:150868(Ticks)ElapsedTicks:47038(Ticks)ElapsedMilliseconds:15(ms)ElapsedTicks测出的时间明显比其他几个时间小

解决方案

解决方案二:
查了下;说ElapsedTicks只适合短时间的计时;但不知道短时间是指多短时间
解决方案三:
Stopwatchsw=newStopwatch();DateTimeStart=DateTime.Now;sw.Start();for(inti=0;i<60000000;i++){intii=1+2;}DateTimeEnd=DateTime.Now;sw.Stop();doubledsa=(End-Start).TotalMilliseconds;Response.Write("(End-Start).TotalMilliseconds:"+dsa.ToString()+"(ms)<br/>");Response.Write("Elapsed.Ticks:"+sw.Elapsed.Ticks+"(Ticks)<br/>");Response.Write("ElapsedTicks:"+sw.ElapsedTicks+"(Ticks)<br/>");Response.Write("ElapsedMilliseconds:"+sw.ElapsedMilliseconds+"(ms)<br/>");
解决方案四:
.Elapsed.TotalMilliseconds跟.Elapsed.Milliseconds是两个不同的概念,前者是指跑表计时结果换算为毫秒的值,而后者是指跑表计时结果中毫秒值(忽略了时、分、秒)。你说能一样吗?对于.Elapsed.Ticks跟.ElapsedTicks的区别,也是类似的。前者才是跑表计时的总时间,后者是一个“循环”改变的值(就好像1位10进制数字,从9以后就循环到0了)。因此后者根本是无意义的。
解决方案五:
.ElapsedMilliseconds跟.Elapsed.TotalMilliseconds基本上一致,只是一个是整数、另一个浮点数。但是从度量的对象上看,不论你写.ElapsedMilliseconds或者.Elapsed.TotalMilliseconds,它们跟.Elapsed.Ticks是针对相同的对象的。而.ElapsedTicks根本就是另外一个意思,并不是你要找的结果对象。
解决方案六:
如果Stopwatch.IsHighResolution==trueElapsed里的ticks会乘上一个tickFrequency,它的值是10000000.0/(double)Stopwatch.Frequency我也不知道为什么
解决方案七:
引用3楼sp1234的回复:

.Elapsed.TotalMilliseconds跟.Elapsed.Milliseconds是两个不同的概念,前者是指跑表计时结果换算为毫秒的值,而后者是指跑表计时结果中毫秒值(忽略了时、分、秒)。你说能一样吗?对于.Elapsed.Ticks跟.ElapsedTicks的区别,也是类似的。前者才是跑表计时的总时间,后者是一个“循环”改变的值(就好像1位10进制数字,从9以后就循环到0了)。因此后者根本是无意义的。

ElapsedTicks:如果一个“循环”改变的值的话;那是怎么循环的呢,1毫秒循环一次吗?在MSDN中ElapsedTicks:获取当前实例测量得出的总运行时间(用计时器计时周期表示)

时间: 2024-10-04 22:13:49

Stopwatch的ElapsedTicks与Elapsed.Ticks不相等[10000Ticks=1Milliseconds]的相关文章

C#实现测量程序运行时间及cpu使用时间

对一个服务器程序想统计每秒可以处理多少数据包,要如何做?答案是用处理数据包的总数,除以累记处理数据包用的时间.这里要指出的是, 运行一段程序,使用的cpu时间,跟实际运行的时间是不一样的.附例如下: private void ShowRunTime() { TimeSpan ts1 = Process.GetCurrentProcess().TotalProcessorTime; Stopwatch stw = new Stopwatch(); stw.Start(); int Circles

《C#并发编程经典实例》—— 转换.NET事件

声明:本文是<C#并发编程经典实例>的样章,感谢图灵授权并发编程网站发布样章,禁止以任何形式转载此文. 问题 把一个事件作为 Rx 输入流,每次事件发生时通过 OnNext 生成数据. 解决方案 Observable 类 定 义 了 一 些 事 件 转 换 器. 大 部 分 .NET 框 架 事 件 与 FromEventPattern 兼 容, 对于不遵循通用模式的事件,需要改用 FromEvent. FromEventPattern 最适合使用委托类型为 EventHandler 的事件.

C#中各种计时器 Stopwatch、TimeSpan

1.使用 Stopwatch 类 (System.Diagnostics.Stopwatch) Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.在典型的 Stopwatch 方案中,先调用 Start 方法,然后调用 Stop 方法,最后使用 Elapsed 属性检查运行时间. Stopwatch 实例或者在运行,或者已停止:使用 IsRunning 可以确定 Stopwatch 的当前状态.使用 Start 可以开始测量运行时间:使用 Stop 可以

如何使用SQL生成DateTime.Ticks

在项目中我需要使用到一个随机数(Random Number),该随机数将作为 Hashtable 中的 Key 用于唯一索引数据,所以需要保持单机唯一性. 同时该随机数还需要具备可排序性以便对数据进行排序. 此时,我可以考虑使用随机字符串<C#生成MongoDB中的ObjectId>,这里的 ObjectId 具备单机唯一性和可排序性. 但另一个需求是,我需要该随机数为 int 或 long 类型,以便与依赖的 Service 进行通信,部分取代 TransactionId 或 Token 的

DateTime.Now.Ticks到底精准吗?熟悉的朋友进来帮下忙啊

问题描述 staticvoidMain(){StopwatchstopWatch=newStopwatch();stopWatch.Start();longc=stopWatch.ElapsedMilliseconds;Thread.Sleep(100);longd=stopWatch.ElapsedMilliseconds;Console.WriteLine(d-c);longi=DateTime.Now.Ticks;Thread.Sleep(100);i-=DateTime.Now.Tick

C# 使用 Stopwatch 测量代码运行时间

小技巧大智慧: System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();sw.Start();System.Threading.Thread.Sleep(3000);sw.Stop();Console.WriteLine(sw.Elapsed);

使用.net Stopwatch class 来分析你的代码

当我们在调试,优化我们的代码的时候,想知道某段代码的真正的执行时间,或者我们怀疑某段代码,或是某几段代码执行比较慢, 需要得到具体的某段代码的具体执行时间的时候.有一个很好用的类Stopwatch. Stopwatch 类在 System.Diagnostics命名空间下.可以用来做分析.net代码块的基本工具. 例如: System.Diagnostics.Stopwatch timerObj = new System.Diagnostics.Stopwatch(); timerObj.Sta

用Javascript实现的一个StopWatch

有时会需要js来写一些函数进行测试,如果需要测试执行时间,可能需要一个stopwatch: StopWatch类: function stopWatch() { } stopWatch.prototype.Start = function () { this.startD = new Date(); return this; }; stopWatch.prototype.Stop = function () { this.startD = new Date(); return this; };

C#-用Stopwatch类进行速度测试

软件的运行速度必须要在用户可以接受的范围内.通常,改善那些短暂的但频繁使用的例 程的速度会大幅度地提高软件的整体速度. 要改善速度,当然首先要能够量度时间. 好,那我们考虑一下在跑道上的情况,枪声一响,马上按下秒表开始计时,在选手到达终点 那一刻结束计时,这时就可以知道该选手所用的时间了.要开始对下一轮比赛计时前,要先 将秒表归零..NET2.0也提供了这样一个秒表:Stopwatch类,它可以比较精确地测量时间. 速度测试: 软件的性能和可测性是一个复杂的主题.要确保应用程序能够满 足用户的期