Я хочу профилировать свое тестовое приложение, запущенное IntelliJ. Для профилирования я использую VisualVM.
Я запустил инструмент Java с параметром -J-Dorg.netbeans.profiler.separateConsole=true.
Я запустил приложение с параметром VM -Xverify:none, иначе VisualVM выдаст ошибку, если я начну профилирование (переопределение завершилось с ошибкой 62).
Я хочу чтобы профилировать мое приложение до того, как будет выполнен какой-либо важный код, поэтому я попытался установить точку останова и начать профилирование в VisualVM. Проблема в том, что VisualVM не реагирует ни на какое взаимодействие, пока я жду точки останова. Я что-то пропустил?
При обычном выполнении (без отладки) моя программа ожидает ввода, поэтому я могу профилировать ее без отладки. А что, если в программе нет таких «точек ожидания»?
Мое тестовое приложение выглядит так:
package my.visualvm.example;
import java.util.Scanner;
public class MainClass {
public static void main(String[] args) {
System.out.println("Starting Application: " + MainClass.class.getSimpleName());
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
double value = scanner.nextDouble();
if (value == 0d) {
break;
}
System.out.println(Powa.powaPowa(value));
}
System.out.println("Stopping Application: " + MainClass.class.getSimpleName());
}
}
Другой класс:
package my.visualvm.example;
final class Powa {
private Powa() {
}
static double powaPowa(double powa) {
return Math.pow(powa, 2);
}
}
Подробнее здесь: https://stackoverflow.com/questions/455 ... with-debug