微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java Stopwatch类,性能与时间计时器案例详解

这篇文章主要介绍了Java Stopwatch类,性能与时间计时器案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

在研究性能的时候,完全可以使用Stopwatch计时器计算一项技术的效率。但是有时想知道某想技术的性能的时候,又常常想不起可以运用Stopwatch这个东西,太可悲了。

属性

Elapsed 获取当前实例测量得出的总运行时间。

ElapsedMilliseconds  获取当前实例测量得出的总运行时间(以毫秒为单位)。

ElapsedTicks  获取当前实例测量得出的总运行时间(用计时器计时周期表示)。

IsRunning   获取一个指示 Stopwatch 计时器是否在运行的值。

方法

GetTimestamp 获取计时器机制中的当前最小时间单位数。

Reset  停止时间间隔测量,并将运行时间重置为零。

Restart  停止时间间隔测量,将运行时间重置为零,然后开始测量运行时间。

Start  开始或继续测量某个时间间隔的运行时间。

StartNew  对新的 Stopwatch 实例进行初始化,将运行时间属性设置为零,然后开始测量运行时间。

Stop  停止测量某个时间间隔的运行时间。

示例:

static void Main(string[] args) { Stopwatch sw = new Stopwatch(); sw.Start(); //开始计时 WebClient wc = new WebClient(); string str = wc.DownloadString("http://www.jmeii.com/"); Console.WriteLine(sw.IsRunning); //输出 true 计时器是否在运行。 sw.Stop(); //计时结束 Console.WriteLine(sw.Elapsed); //输出 00:00:00.3452873 Console.WriteLine(sw.ElapsedMilliseconds); //输出 223 Console.WriteLine(sw.ElapsedTicks); //输出501838 Console.WriteLine(sw.IsRunning); //输出 flase Console.WriteLine(Stopwatch.GetTimestamp()); //输出56151531319 获取计时器机制中的当前最小时间单位数。 sw.Reset(); //重置 Console.WriteLine(sw.Elapsed.ToString()); //输出 00:00:00 //返回的是TimeSpan类型,可以任意处理 sw.Restart(); //重新开始 FileStream fs = new FileStream(@"D:admin_b.txt", FileMode.Open, FileAccess.Read); //string str = byte[] byteArr = new byte[fs.Length]; fs.Read(byteArr, 0, (int)fs.Length); Stopwatch sw2 = Stopwatch.StartNew(); //创建一个新的计时器 string str2 = Encoding.UTF8.GetString(byteArr); sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); //输出 10 Console.WriteLine(sw2.ElapsedMilliseconds); //输出 9 sw2.Stop(); Console.ReadKey(); }

对比FileStream与File类:

static void Main(string[] args) { Stopwatch sw = new Stopwatch(); sw.Start(); FileStream fs = new FileStream(@"D:admin_b.txt", FileMode.Open, FileAccess.Read); //string str = byte[] byteArr = new byte[fs.Length]; fs.Read(byteArr, 0, (int)fs.Length); string str = Encoding.UTF8.GetString(byteArr); sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); //输出 12 Stopwatch sw2 = new Stopwatch(); sw2.Start(); File.ReadAllText(@"E:admin_b.txt"); sw2.Stop(); Console.WriteLine(sw2.ElapsedMilliseconds); //输出 11 Console.ReadKey(); }

Linq示例:

public class Program { static void Main(string[] args) { //获取一个随机数集合 List ListInt = new List(); Random r = new Random(); for (int i = 0; i

运行了3,5次,Linq的性能的确厉害。有几次相等,有几次少1毫秒。看来Linq to OBJECT还真是靠谱。效率,优雅度都相当好,不愧是高手做的控件。以后如果对什么技术又疑问,完全可以用该类来测试,记得,记得,记得得。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐