Java – performance analysis using IntelliJ and debug in visualvm
I want to describe the test application launched by IntelliJ For analysis, I used visual VM
I use the parameter - j-dorg netbeans. profiler. Separateconsole = true starts the Java tool
I started the application with the VM parameter - xverify: none, otherwise visualvm would throw an error when I started analysis (redefinition failed, error 62)
I want to analyze my application before executing any important code, so I try to set a breakpoint and start analysis in visual VM The problem is that when I wait at the breakpoint, visual VM does not respond to any interaction Did I miss anything?
During normal execution (without debugging), my program waits for input, so I can analyze it without debugging But what if a program doesn't have such a "waiting point"?
My test application looks like:
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()); } }
Other courses:
package my.visualvm.example; final class Powa { private Powa() { } static double powaPowa(double powa) { return Math.pow(powa,2); } }
Solution
Set the breakpoint to suspend only the current thread