Stopwatch 类

Posted 很久很久以前

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Stopwatch 类相关的知识,希望对你有一定的参考价值。

https://msdn.microsoft.com/zh-cn/library/system.diagnostics.stopwatch.aspx

提供一组方法和属性,可用于准确地测量运行时间。

一个 Stopwatch 实例可以测量运行时间为一个时间间隔或所用的时间合计多个间隔。 在典型 Stopwatch 方案中,调用 Start 方法,然后最终调用 Stop 方法,然后检查经过的时间使用 Elapsed 属性。

一个 Stopwatch 实例正在运行或已停止; 使用 IsRunning 来确定的当前状态 Stopwatch。 使用 Start 开始测量运行时间; 使用 Stop 停止测量运行时间。 查询运行时间值通过属性 Elapsed, ,ElapsedMilliseconds, ,或 ElapsedTicks 正在运行或已停止实例时,您可以查询运行时间属性。 属性则稳步增多的已用时间而 Stopwatch 是运行; 它们保持不变时停止该实例。

默认情况下,运行时间值的 Stopwatch 实例等于所有规定的时间间隔的合计。 每次调用 Start 开始计数累计的运行时间; 每次调用 Stop 结束当前的时间间隔测量,并会冻结的累计运行时间值。 使用 Reset 方法清除中现有的累计已用时间 Stopwatch 实例。

Stopwatch 通过计算基础计时器机制中的计时器刻度来测量运行时间。 如果已安装的硬件和操作系统支持高分辨率性能计数器,则 Stopwatch 类使用该计数器来测量运行时间。否则为 Stopwatch 类使用系统计时器来测量运行时间。 使用 Frequency 和 IsHighResolution 字段来确定的精度和解决方法 Stopwatch 计时实现。

Stopwatch 类托管代码中与计时相关的性能计数器的操作提供帮助。 具体而言,Frequency 字段和 GetTimestamp 方法可用来代替非托管的 Win32 ApiQueryPerformanceFrequency 和 QueryPerformanceCounter

技术分享说明

在多处理器计算机上,它并不重要哪个处理器运行的线程。 但是,由于在 Bios 或硬件抽象层 (HAL) 中的 bug,您可能会在不同的处理器得到不同的计时结果。 若要指定一个线程的处理器关联,请使用 ProcessThread.ProcessorAffinity 方法。

 

以上是关于Stopwatch 类的主要内容,如果未能解决你的问题,请参考以下文章

6_StopWatch

使用 StopWatch 优雅打印执行耗时

使用 StopWatch 优雅打印执行耗时

Stopwatch 类

性能分析 之 统计代码的执行时间

是否已经有适用于 android 的 StopWatch 类,为啥我的实现不起作用?