Profiling in VisualVm Using IntelliJ with Debug
我想分析由IntelliJ启动的测试应用程序。 对于分析,我使用VisualVm。
我使用参数
我使用VM参数
我想在执行任何重要代码之前先对应用程序进行概要分析,因此我尝试设置一个断点并开始在VisualVM中进行性能分析。 问题是当我在断点处等待时,VisualVm无法响应任何交互。 我想念什么吗?
在正常执行(没有调试)的情况下,我的程序等待输入,因此无需调试即可对其进行概要分析。 但是,如果程序没有这样的"等待点"怎么办?
我的测试应用程序如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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()); } } |
其他类:
1 2 3 4 5 6 7 8 9 10 11 | package my.visualvm.example; final class Powa { private Powa() { } static double powaPowa(double powa) { return Math.pow(powa, 2); } } |
将断点设置为仅挂起当前线程。