测量 bukkit.event.Listener 处理的方法的运行时间

问题描述

我需要以毫秒 (#.### ms) 为单位进行准确测量,即空方法运行所需的确切时间,而测量不会影响结果。

通常我会做这样的事情:

long startTime = System.nanoTime();
methodToTime();
long endTime = System.nanoTime();

long duration = (endTime - startTime);  //divide by 1000000 to get milliseconds.

这行不通,因为我的代码从不直接调用该方法;它只是定义它。

import org.bukkit.event.Listener;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;

public class BlockListener implements Listener {

    @EventHandler(priority = EventPriority.LOWEST,ignoreCancelled = true)
    public void onPlace(BlockPlaceEvent event) {

    //...
    }
}

在我正在研究的这个 Minecraft Bukkit 服务器中的某些方法的上下文中,1ms 很重要,这意味着我需要高精度来测量然后优化对时间敏感的方法。

那么,在方法中添加任何代码肯定会影响方法的运行时吗?

衡量这一点的最佳方法是什么?请和谢谢

使用 ProtocolLib (1.16.5) 运行 Paper/Spigot

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)