当前位置: 首页 > 知识库问答 >
问题:

按下按钮到代码行执行之间延迟的计算方法

竺捷
2023-03-14
long start_time = System.currentTimeMillis();
displayTheStimulus();

long end_time;
if (spacebarIsHitted()) {
    end_time = System.currentTimeMillis();
} else {
    end_time = start_time;
}

long difference = end_time-start_time

我怎么能确定这个方法给出的值是有效和准确的呢?有没有办法评估这种方法有多准确?

共有1个答案

万俟玉书
2023-03-14

根据java System文档,您可以使用System.nanotime()来度量某些操作需要多长时间,它使用更高分辨率的计时器(取决于底层平台的可用性)。基于平台,您可能会有轻微的错误率。

此外,由于您使用的是JavaFX for GUI,以下内容是从这个答案复制的

根据JavaFX架构,它使用本机事件队列来捕获和批处理所有事件。通过捕获,可以理解在该时刻生成了事件(用户单击按钮)。考虑到批处理,我们已经丢失了关于事件生成时间的信息(除非JavaFX内部保留了该信息,否则您可以查看com.sun.JavaFX包以获得较低级别的详细信息)。每1/60秒有一个预定脉冲事件。在pulse事件期间,所有其他JavaFX事件,如MouseEvent等,都是通过正常的JavaFX事件调度机制触发的。此时,您的应用程序将从JavaFX收到一个事件发生的通知。因此,在理想情况下,事件的发布时间和处理时间之间的差值应该小于0.0166(6)秒。

 类似资料:
  • 最初,我在运行拓扑时只分配了1个executor给QueryNormalizer。执行潜伏期为8.952,处理潜伏期为12.857。 为了更快,我将QueryNormalizer中的执行程序数更改为4。执行延迟更改为197.616,处理延迟更改为59.132。 根据执行延迟的定义-元组在执行方法中花费的平均时间。execute方法可以在不发送元组的Ack的情况下完成。 此外,处理延迟是否应始终低于

  • 问题内容: 如何在jQuery中的按键之间延迟动作。例如; 我有这样的东西 如果用户连续输入,我想防止发布数据。那么我该如何延迟0.5秒呢? 问题答案: 您可以使用jQuery的数据功能来执行此操作,如下所示: 这里的主要优点是到处都没有全局变量,并且您可以根据需要将其包装在setTimeout中的匿名函数中,只是尝试使示例尽可能简洁。

  • 我想和JDA做一个不和谐的赠品机器人。对我来说,在文件或其他地方保存条目是没有问题的,但是如何在3天后选择获胜者呢?它听起来不是很有效,使用定时器任务或保存到一个文件中的日期,并检查它每发送消息? 你不需要给我一个代码示例,但是一个简短的解释就足够了

  • 我一直在寻找能在按键之间有一点延迟的方法。我一直在制作这个程序,它使用JIntellitype库读取全局热键,然后启动您指定的任何一个按键序列,例如按numpad1将执行一个B C序列。我的问题是,如果我使用线程。睡眠它只是延迟X个时间,然后按所有指定的键,在任何按键之间没有任何延迟。有人对如何解决这个问题有什么建议吗?提前谢谢! 这就是我用来发送机器人类按键的东西

  • 这是我HTML文件中的内容: 我希望按钮在Post类中执行一个方法。我不确定我是否使用了正确的Thymeleaf“标记”。现在,当页面加载时,它执行post-upvote和downvote方法。有人能帮忙吗?我觉得我用错了Thymeleaf标签。

  • 可能的重复: 如何测量函数的运行时间? 我有一种I/O计时方法,它将数据从一个位置复制到另一个位置。计算执行时间的最佳和最真实的方法是什么<代码>线程<代码>定时器<代码>秒表?还有其他解决方案吗?我想要最准确的,尽可能简短的。