Java使用System.nanoTime()统计代码运行时间

我们在统计代码的运行时间常常会用System.currentTimeMillis(),如下:

long startTime = System.currentTimeMillis();

doReallyLongThing();

long endTime = System.currentTimeMillis();

System.out.println("耗时: " + (endTime - startTime) + " 毫秒");

其实,Java提供了一个专用于测量使用时间,精度更高的方法:System.nanoTime()。

System.nanoTime()返回的是运行中的JVM的高精度时间源当前的值,以纳秒为单位。但需要注意的是,这个JVM的时间源与日期系统无关,它有可能是以未来时间点为起始的时间源。由于在一个JVM实例里,时间源的起始时固定的,所以它可以也只能用于使用时间的测量。

示例

long startTime = System.nanoTime();

doReallyLongThing();

long endTime = System.nanoTime();

System.out.println("耗时: " + (endTime - startTime) + " 纳秒");

版权声明:著作权归作者所有。

相关推荐

Linux统计目录下所有文件的行数

这里提供两种方法来统计目录下所有文件的行数:1、结合使用find和wc:find . -name '*.pl' | xargs wc -l 另外,此命令也可以改为:( find ./ -name '*.pl' -print0 | xargs -0&n

使用stackblitz在线运行github上基于Angular CLI构建的项目

在Github上面有很多Angular的demo,示例等等,我们要运行Github里的示例,需要经过下载,初始化项目,然后才到运行项目,这中间会花去很多时间。有一个叫做StackBlitz的项目,它可以看作一个轻量级的在线的IDE,它允许我们在线运行基于Angular CLI构建的项目。更进一步,对于Github上的项目,我们只需要简单地在浏览器输入对应的url即可运行我们想要的项目。示

使用moment.js加减日期时间

moment.js提供了很多便捷的操作日期的函数,其中包括加减日期时间增加日期时间语法moment().add(Number, String); moment().add(Duration); moment().add(Object); 添加天数moment().add(7, 'days'); 可以简写为moment().add(7, 'd'); 类型列表years(

Python获取当前时间

datatime模块now()使用datetime.now()获取当前日期和时间>>> import datetime >>> datetime.datetime.now() datetime(2017, 12, 27, 21, 39, 24, 676972) 仅返回日期&

[译]代码优先的Java 9模块系统教程(二)

服务监控(ServiceMonitor)让我们来想象一个提供娱乐服务的网络,可能是社交网络或者是视频网络。我们希望监控这些服务,以确定系统的健康状况,并且在发生问题时能够发现,而不是客户报告。 这就是ServiceMonitor示例程序所要做的:监视这些服务(另一个惊喜)。幸运的是,服务已经收集了我们想要的数据,ServiceMonitor所需要做的就是定期查询。 不幸的是,并

[译]代码优先的Java 9模块系统教程(一)

Java平台模块系统(JPMS)将模块化带入Java和JVM,并改变了我们在大型应用中的编程方式。 为了充分利用它,我们需要很好地了解,第一步是学习基础知识。 在本教程中,我首先向你展示一个简单的Hello World示例,然后我们用Java 9将一个现有的demo程序模块化。我们将创建模块声明(module-info。java),使用模块路径来编译,打包,以及运行程序——先代