java - 执行 java 方法所花费的时间为零?

标签 java methods time

我正在调用方法之前和方法返回之后立即读取系统时间并获取时间差,这将给出执行方法所花费的时间。

代码片段

long start = System.currentTimeMillis ();
method ();
long end = System.currentTimeMillis ();

System.out.println ("Time taken for execution is " + (end - start));

奇怪的是输出是0..这怎么可能..?

最佳答案

很可能它比相当粗粒度的系统时钟花费的时间更短。 (例如,您可能会发现 System.currentTimeMillis() 仅每 10 或 15 毫秒更改一次。)

System.currentTimeMillis 适用于找出当前时间,但它不够精细,无法测量较短的持续时间。相反,您应该使用 System.nanoTime()它使用高分辨率计时器。 nanoTime() 适合查找当前时间 - 但它专为测量持续时间而设计。

将其视为挂钟和秒表之间的区别。

关于java - 执行 java 方法所花费的时间为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8547002/

相关文章:

java - Hibernate 不使用 Firebird 序列,而是尝试使用表

javascript - 动态地将 Javascript 对象存储在另一个对象中

javascript - 如何使用 javascript 更改文件扩展名

javascript - 如何在 javascript 中运行对象的 onEvent 方法?

sql - PostgreSQL - 逐秒创建 View

ruby-on-rails - 将字符串转换为特定时区的日期时间

java - 传递一个类并调用它的方法

java - Windows 和 Debian (Linux) 上托管的 MySQL 有什么区别?

java - 如何获取数组列表中前三个最大值的索引

ruby-on-rails - 如何更改 created_at 字段的 RAILS 默认时间戳格式(以存储在数据库中)?