Как в IntelliJ IDEA отеследить скорость выполнения кода?
Как в IntelliJ IDEA отеследить время, за которое выполняется мой код?
Ответы (3 шт):
Можно использовать класс Date чтобы получить время до и после в миллисекундах. Я уверен найдётся более изящное решение, сильно не минусите )
public static void main(String[] args) {
long d = new Date().getTime();
//Ваш код
doSomething();
//конец вашего кода
long e = new Date().getTime();
System.out.println(e-d);
}
public static void doSomething(){
int count=0;
while (count<200){
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
count++;
}
}
public static void main(String[] args) {
List<Integer> integers = new ArrayList<>();
LocalDateTime from = LocalDateTime.now();
for (int i = 0; i < 1_000_000; i++) {
integers.add(i);
}
LocalDateTime to = LocalDateTime.now();
System.out.println(Duration.between(from, to).toMillis());
}
Код выводит в консоль время выполнения цикла по добавлению 1 000 000 элементов в список в миллисекундах.
Измерять время исполнения кода через
LocalDateTime from = LocalDateTime.now();
// some code
LocalDateTime to = LocalDateTime.now();
Плохая затея, если код не исполняется хотя бы несколько секунд, на даже при этом результат будет зависеть от состояния jvm в момент замера и других факторов. Советую ознакомиться с докладами Алексея Шипелёва про производительность в java. На ютубе их множество. Для измерения времени выполнения кода стоит использовать специальные фреймворки, например, JMH https://github.com/openjdk/jmh