【发布时间】:2021-07-12 22:06:32
【问题描述】:
我需要以毫秒 (#.### ms) 为单位准确测量 void 方法运行所需的准确时间,而测量不会影响结果。
通常我会简单地做这样的事情:
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 服务器中的某些方法的上下文中,1 毫秒很重要,这意味着我需要高精度来测量并优化对时间敏感的方法。
那么,在方法中添加任何代码肯定会影响方法的运行时间吗?
衡量这一点的最佳方法是什么?请和谢谢你
使用 ProtocolLib (1.16.5) 运行纸张/Spigot
【问题讨论】:
标签: java performance listener bukkit eventhandler