有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中的精确摆动计时器

我正在开发一个应用程序,在这个应用程序中,我需要执行倒计时,让某个计数器每秒倒计时,并显示在一个小部件中

没问题,使用java类javax.swing.Timer很容易做到这一点,但是性能很差

屏幕上还有其他图形对象,不够精确,让它从10分钟下降到0需要10分钟以上

我尝试的第一件事是一个1000毫秒延迟的计时器,这会让我损失很多秒,有时更新视图的速度不够快

第二,我尝试使用一个延迟为20ms的计时器和一个内部逻辑,只有当System.nanoTime()报告上一次执行的秒数时,我的操作才能运行

这给了我更好的准确性,但在java应用程序与旧系统上的其他应用程序一起执行的环境中,它的性能更差

有没有办法在Java中实现独立于调度器的计时器? 我什么都愿意做。操作系统的独立性并不是一个真正的问题,所以本机代码是一个选项,如果它给了我一个好的结果

更新:

我创建了一个示例并将其上传到gist上:

https://gist.github.com/bracco23/c160c9591ac216a2eb9452ef9e7d6d95

糟糕的是,这个例子并没有整个项目那么糟糕,我让它运行了整整10分钟,花了大约602秒,2秒的延迟,不到0.4%,不太糟糕,我不介意

我上传它是为了显示应用程序的模式,在示例和完整应用程序中也是如此

无论如何,非常感谢你:D


共 (0) 个答案