我使用java创建了一个演示文稿渲染框架。需要计算用户对演示文稿中每个帧花费的时间。所以在java中有任何api或框架看起来像秒表。
答案 0 :(得分:3)
对于测量,您可以使用:
System.nanoTime();
返回最精确的可用系统计时器的当前值,以纳秒为单位。
此方法只能用于测量经过的时间,与系统或挂钟时间的任何其他概念无关。返回的值表示自固定但任意时间以来的纳秒数。
例如来自oracle文档:
long startTime = System.nanoTime();
// ... the code being measured ...
long estimatedTime = System.nanoTime() - startTime;
答案 1 :(得分:1)
使用恰好为此目的而存在的System.nanoTime()
。如果您想要额外的goodies
,例如轻松操纵已用时间,支持圈数,那么您可以查看com.google.common.base.StopWatch
中的Guava library。
示例:
Stopwatch stopwatch = Stopwatch.createStarted();
doSomething();
stopwatch.stop(); // optional
long millis = stopwatch.elapsed(MILLISECONDS);
log.info("time: " + stopwatch); // formatted string like "12.3 ms"
Guava还包括其他好东西,如集合,缓存,基元支持,并发库,通用注释,字符串处理,I / O等。