我想描述IntelliJ启动的测试应用程序.对于分析,我使用了VisualVm.
我使用参数-J-Dorg.netbeans.profiler.separateConsole = true启动了java工具.
我使用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);
}
}