<?xml version="1.0" encoding="UTF-8"?>
<configuration version="2.0" label="High Frequency Profiling" description="Very aggressive profiling for performance analysis" provider="Zac">
  
  <!-- Execution sampling at 1ms (vs 10ms default) -->
  <event name="jdk.ExecutionSample">
    <setting name="enabled">true</setting>
    <setting name="period">1 ms</setting>
  </event>
  
  <!-- Native method sampling at 1ms -->
  <event name="jdk.NativeMethodSample">
    <setting name="enabled">true</setting>
    <setting name="period">1 ms</setting>
  </event>
  
  <!-- All object allocations (not just sampled) -->
  <event name="jdk.ObjectAllocationInNewTLAB">
    <setting name="enabled">true</setting>
    <setting name="stackTrace">true</setting>
  </event>
  
  <event name="jdk.ObjectAllocationOutsideTLAB">
    <setting name="enabled">true</setting>
    <setting name="stackTrace">true</setting>
  </event>
  
  <!-- Monitor contention with threshold -->
  <event name="jdk.JavaMonitorEnter">
    <setting name="enabled">true</setting>
    <setting name="stackTrace">true</setting>
    <setting name="threshold">1 ms</setting>
  </event>
  
  <!-- Thread events -->
  <event name="jdk.ThreadPark">
    <setting name="enabled">true</setting>
    <setting name="stackTrace">true</setting>
    <setting name="threshold">1 ms</setting>
  </event>
  
  <!-- Class loading -->
  <event name="jdk.ClassLoad">
    <setting name="enabled">true</setting>
    <setting name="stackTrace">true</setting>
  </event>
  
  <!-- Compilation events -->
  <event name="jdk.Compilation">
    <setting name="enabled">true</setting>
    <setting name="threshold">10 ms</setting>
  </event>

  <!-- JIT Compiler Inlining decisions - CRITICAL for inlining analysis -->
  <event name="jdk.CompilerInlining">
    <setting name="enabled">true</setting>
  </event>

  <!-- JIT Compilation phases -->
  <event name="jdk.CompilerPhase">
    <setting name="enabled">true</setting>
    <setting name="threshold">0 ms</setting>
  </event>
  
  <!-- GC events -->
  <event name="jdk.GarbageCollection">
    <setting name="enabled">true</setting>
    <setting name="threshold">0 ms</setting>
  </event>
  
  <event name="jdk.GCPhasePause">
    <setting name="enabled">true</setting>
    <setting name="threshold">0 ms</setting>
  </event>

  <!-- CPU load monitoring -->
  <event name="jdk.CPULoad">
    <setting name="enabled">true</setting>
    <setting name="period">1000 ms</setting>
  </event>

  <!-- Exception tracking -->
  <event name="jdk.JavaExceptionThrow">
    <setting name="enabled">true</setting>
    <setting name="stackTrace">true</setting>
    <setting name="threshold">0 ms</setting>
  </event>

  <!-- Deoptimization events -->
  <event name="jdk.Deoptimization">
    <setting name="enabled">true</setting>
    <setting name="stackTrace">true</setting>
  </event>

  <!-- Safepoint events -->
  <event name="jdk.SafepointBegin">
    <setting name="enabled">true</setting>
    <setting name="threshold">0 ms</setting>
  </event>

</configuration>
