diff --git a/docs/developer/developer-manual.html b/docs/developer/developer-manual.html index 401c4ea1b46b..eefcec368db2 100644 --- a/docs/developer/developer-manual.html +++ b/docs/developer/developer-manual.html @@ -34,6 +34,10 @@
+This section covers various development and debugging tools that can help improve your development experience when working on the Checker Framework. +
+ ++IntelliJ IDEA provides powerful profiling capabilities using Java Flight Recorder (JFR) that can help you analyze performance bottlenecks in the Checker Framework. This tool is essential for identifying slow type-checking operations, memory usage patterns, and optimization opportunities. +
+ ++Step 1: Generate JFR Profile Data +
+ ++First, run the Checker Framework with Java Flight Recorder enabled. Here's a practical example: +
+ ++javac -J-XX:+FlightRecorder \ + -J-XX:StartFlightRecording=duration=30s,filename=nullness-profile.jfr \ + -processor org.checkerframework.checker.nullness.NullnessChecker \ + docs/examples/NullnessExample.java ++ +
+Command breakdown: +
+javac - Java compiler-J-XX:+FlightRecorder - Enables JFR functionality-J-XX:StartFlightRecording=duration=30s,filename=nullness-profile.jfr - Starts a 30-second performance recording session, saving results to nullness-profile.jfr file-processor org.checkerframework.checker.nullness.NullnessChecker - Uses the Nullness Checker for static analysisdocs/examples/NullnessExample.java - Target Java file to analyze+Step 2: Open JFR File in IntelliJ +
+ +
+After the command completes, you'll have a nullness-profile.jfr file. To analyze it in IntelliJ:
+
nullness-profile.jfr file+Step 3: Understanding the Profiler Interface +
+ ++The profiler window contains several important views: +
+ ++The profiler provides five different views to analyze your application's performance: +
++The Show dropdown in the top right allows you to switch between different profiling perspectives: +
+ ++See the testing optimizations section for additional performance testing approaches. +
+