- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的应用程序中使用 system.nanoTime 并计算相对于开始时间的时间。
我的应用程序运行得很好,直到我将其复制到一台新计算机上,在它上纳米时间给了我较慢的值。
我编写了一个简单的应用程序只是为了确保。
纳秒时间与系统时间进行比较。
除了我的新计算机之外,它在其他计算机上显示相同的值。有什么建议么?
这是我的代码:首先我有
private long initNanoTime = System.nanoTime();
private long initTime = System.currentTimeMillis();
比我循环一个每秒运行的线程:
long timeUsingNanoTime = initTime + (System.nanoTime() - initNanoTime) / 1000000;
long timeUsingMilis = System.currentTimeMillis();
long nanotimeOffset = Math.abs(timeUsingNanoTime - timeUsingMilis);
if (nanotimeOffset < 100l) ? print("close") : print(far);
编辑:我使用nano是因为我需要处理在nano时间内发生的事件并将其收到的nano时间打印到日志
最佳答案
这就像 Java API 文档所说的 System.nanoTime()
:
This method can only be used to measure elapsed time and is not related to any other notion of system or wall-clock time. The value returned represents nanoseconds since some fixed but arbitrary origin time (perhaps in the future, so values may be negative). The same origin is used by all invocations of this method in an instance of a Java virtual machine; other virtual machine instances are likely to use a different origin.
This method provides nanosecond precision, but not necessarily nanosecond resolution (that is, how frequently the value changes) - no guarantees are made except that the resolution is at least as good as that of currentTimeMillis().
它不提供与时间戳(currentTimeMillis)的任何耦合,也不提供固定的分辨率。
在您的情况下,Java 现在似乎拥有比以前更高分辨率的计时器,因此不需要使用系统时间。
关于java - system.nanoTime() 运行太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10026812/
大家好,我有一段代码如下所示: public class Test { public static void main(String args[]) { long a = Sy
我做了这样的基准: for (int i = 0; i < 1000 * 1000; ++i) { long var = System.nanoTime(); } 在我的jdk6.0电脑上需要
我正在做一个项目,需要在 999 个随机 double 组中实现冒泡排序、希尔排序和快速排序算法。 我需要测量每个算法运行所需的时间。 我正在使用 System.nanoTime() 来测量每个算法的
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我有一个线程将数据插入队列,另一个线程从队列中读取数据并进行处理。我想检查数据在处理之前在队列中的停留时间。 我在第一个线程推送之前在数据中添加了一个时间参数(使用 System.nanoTime()
可以使用 Clock 模拟调用,例如 System.currentTimeMillis() 使用 Clock.millis() 并注入(inject) Clock 的模拟实现。 是否有类似的方法可以轻
我想以纳秒为单位计算两个事件之间耗时。为此,我可以使用 System.nanoTime()如前所述 here .问题是这两个事件发生在不同的线程中。 自 nanoTime()不返回绝对时间戳,而只能用
我想做与下面这段代码相同的操作,但使用 System.nanoTime()反而 new Timer().schedule(new TimerTask() {
我正在编写一个 FTP 客户端应用程序,并在代码中的两个点使用了 System.nanoTime(),返回的秒数差异为 18,而我的程序只需要 2 秒...检查 onPostExecute 方法中的日
我目前正在使用 Java 编写多线程程序。在某些时候,不同的线程会记录它们的操作,我正在使用 nanoTime为了这。每个线程都有自己的日志文件,最后我将它们合并并根据时间 (nanoTime) 对它
我在我的应用程序中使用 system.nanoTime 并计算相对于开始时间的时间。 我的应用程序运行得很好,直到我将其复制到一台新计算机上,在它上纳米时间给了我较慢的值。 我编写了一个简单的应用程序
这不是我第一次遇到编程语言中的时钟时间问题。基本上,我通过在 while 循环中调用函数来测量函数的运行速度。问题是,由于某种原因,while 循环运行的时间越长,耗时就越短。谁能解释一下吗?代码如下
我使用以下代码来评估我的方法/操作的性能- 问题:由于这是贯穿代码的,是否应将其从生产代码中删除以防止降低应用性能。 在我们的一次讨论中,有人指出 Linux(时区)上的一些时间调用会执行 IO 以查
在 gemfire 上,我有一个区域 ABC,并且在该区域内有一个 long 类型的列/字段。在此字段中,我将值设置为 System.nanoTime()。我想获取该区域 24 小时前的所有记录。我怎
我正在编写一个使用 System.nanotime 的 android 计时器应用程序。问题是它给了我低估的结果和负数。 redVal、blueVal 和 greenVal 在相机的每一帧上更新。 结
我正在开发一个 2d java 游戏,但我遇到了计时器问题。这是我的游戏循环: void gameLoop(isRunning){ .... doStuff(); .... } 我在循环中有一个像这样
我正在关注这个jmh 测试http://hg.openjdk.java.net/code-tools/jmh/file/57623b7f64e6/jmh-core-benchmarks/src/mai
我有一个很长的字符串,其模式为 最后,我试图测试一些函数调用的性能,所以我进行了以下测试以试图找出答案......但我认为我可能错误地使用了 nanoTime?因为无论我如何交换顺序,结果都没有意义.
我使用变量 time_of_last_call 作为我的时间起点;因为 nanoTime() 可能会给出负值,所以我不能使用 0 作为我的时间起点来初始化 time_of_last_call。如果我用
我有一个多线程 Java 程序,可以在几秒钟内创建数百个临时文件。这些文件位于 /tmp 中,并使用 System.nanoTime() 命名。 是否保证文件名是唯一的? 最佳答案 不,不能保证每次调
我是一名优秀的程序员,十分优秀!