Мне нужно точно измерить в мс (#.### 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 мс имеет большое значение, а это означает, что мне нужна высокая точность для измерения, а затем оптимизации чувствительных ко времени методов.
Итак, конечно, добавление любого кода внутри метода может повлиять на время выполнения метода?
Каков наилучший способ измерить это? Пожалуйста и спасибо вам
Running Paper/Spigot с ProtocolLib (1.16.5)