// 返回结果:
// 如果 System.Diagnostics.Stopwatch 实例当前正在运行,并且在对某个时间间隔的运行时间进行测量,则该值为 true;否则为 false。
public bool IsRunning { get; }
// 摘要:
// 获取计时器机制中的当前最小时间单位数。
// 返回结果:
// 一个长整型,表示基础计时器机制中的计时周期计数器值。
public static long GetTimestamp();
// 摘要:
// 对新的 System.Diagnostics.Stopwatch 实例进行初始化,将运行时间属性设置为零,然后开始测量运行时间。
// 返回结果:
// 刚刚开始测量运行时间的 System.Diagnostics.Stopwatch。
public static Stopwatch StartNew();
// 摘要:
// 停止时间间隔测量,并将运行时间重置为零。
public void Reset();
// 摘要:
// 停止时间间隔测量,将运行时间重置为零,然后开始测量运行时间。
public void Restart();
// 摘要:
// 开始或继续测量某个时间间隔的运行时间。
public void Start();
// 摘要:
// 停止测量某个时间间隔的运行时间。
public void Stop();
Stopwatch的命名空间是using System.Diagnostics;
从上文看到
Restart()
等于
Reset()
加
Start()
使用流程如下
Stopwatch sw = new Stopwatch();
//开始计时
sw.Start();
//重新设置为零
sw.Reset();
//重新设置并开始计时
sw.Restart();
//结束计时
sw.Stop();
//获取运行时间间隔
TimeSpan ts = sw.Elapsed;
//获取运行时间[毫秒]
long times = sw.ElapsedMilliseconds;
//获取运行的总时间
long times2 = sw.ElapsedTicks;
//判断计时是否正在进行[true为计时]
bool isrun = sw.IsRunning;
//获取计时频率
long frequency = Stopwatch.Frequency;
Stopwatch 在基础计时器机制中对计时器的计时周期进行计数,从而测量运行时间。 如果安装的硬件和操作系统支持高分辨率性能计数器,则 Stopwatch 类将使用该计数器来测量运行时间; 否则,Stopwatch 类将使用系统计数器来测量运行时间。 使用 Frequency 和 IsHighResolution 字段可以确定实现 Stopwatch 计时的精度和分辨率。
TimeSpan 对象表示时间间隔或持续时间,按正负天数、小时数、分钟数、秒数以及秒的小数部分进行度量。用于度量持续时间的最大时间单位是天。更大的时间单位(如月和年)的天数不同,因此为保持一致性,时间间隔以天为单位来度量。
TimeSpan 对象的值是等于所表示时间间隔的刻度数。一个刻度等于 100 纳秒,TimeSpan 对象的值的范围在 MinValue 和 MaxValue 之间。
TimeSpan 值可以表示为 [-]d.hh:mm:ss.ff,其中减号是可选的,它指示负时间间隔,d 分量表示天,hh 表示小时(24 小时制),mm 表示分钟,ss 表示秒,而 ff 为秒的小数部分。即,时间间隔包括整的正负天数、天数和剩余的不足一天的时长,或者只包含不足一天的时长。例如,初始化为 1.0e+13 刻度的 TimeSpan 对象的文本表示“11.13:46:40”,即 11 天,13 小时,46 分钟和 40 秒
。
Stopwatch sw = new Stopwatch();
//开始计时
sw.Start();
//5.SqlQuery()查询
var sql = "select * from UserInfo where age > 15 order by age desc";
object[] obj = new object[1];
var info = db.UserInfo.SqlQuery(sql, obj);
foreach (var item in info)
richTextBox1.Text += "姓名:" + item.Name + " 年龄:" + item.Age + "\n";
//结束计时
sw.Stop();
//获取运行时间[毫秒]
long times = sw.ElapsedMilliseconds;
richTextBox1.Text += "执行查询总共使用了" + times + "毫秒";
第一次查询
姓名:老马 年龄:55
姓名:飞哥 年龄:22
姓名:李四 年龄:20
姓名:张三 年龄:18
执行查询总共使用了500毫秒
第二次查询
姓名:老马 年龄:55
姓名:飞哥 年龄:22
姓名:李四 年龄:20
姓名:张三 年龄:18
执行查询总共使用了4毫秒
为什么两次查询耗时差距那么大?
应为EF和sql执行查询缓存的问题造成。
飞哥的专栏
在研究性能的时候,完全可以使用
Stopwatch
计时器计算一项技术的效率。但是有时想知道某想技术的性能的时候,又常常想不起可以运用
Stopwatch
这个东西,太可悲了。
Elapsed 获取当前实例测量得出的总运行时间。
ElapsedMilliseconds 获取当前实例测量得出的总运行时间(以毫秒为单位)。
ElapsedTicks ...
Stopwatch
可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。一般用来测量代码执行所用的时间或者计算性能数据,在优化代码性能上可以使用
Stopwatch
来测量时间。
使用的时候需要引用System.Diagnostics命名空间。先调用 Start 方法,然后调用 Stop 方法,最后使用 Elapsed 属性或者使用Elapsed...
1、一个button,一个 label, 一个picturebox
2、当按钮按下,lalbel 清空,更改按钮图片为“停止图片”。当再次按下按钮,更改按钮图片为“开始图片”,且在label上显示时间(多少秒)。
3、玩过一轮后,再次按下按钮,同样要更改图片为“停止图片”,并重新计时,label 清空
4、当鼠标移动到picturebox上时候,lablel控件显示当前时间,并且实时更新。
Stopwatch
可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。一般用来测量代码执行所用的时间或者计算性能数据,在优化代码性能上可以使用
Stopwatch
来测量时间。
引用的空间名:使用的时候需要引用 System.Diagnostics 命名空间。
先调用 Start 方法,然后调用 Stop 方法,最后使用 Elapsed 属性或者使...