We have performance build that spawns up our application with the following flags turned on:
-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=dumponexit=true,dumponexitpath=/tmp/ImaginaryApplication/logs/flightRecorder.jfr -XX:StartFlightRecording=defaultrecording=true,settings=MyCustomSetting
The custom setting was created through Flight Recorder UI, with all settings turned on. I guess the important section that is relevant to my question here is the following:
<selection name="gc-level" default="all" label="Garbage Collector">
<option label="Off" name="off">off</option>
<option label="Normal" name="detailed">normal</option>
<option label="All" name="all">all</option>
</selection>
<condition name="gc-enabled-normal" true="true" false="false">
<or>
<test name="gc-level" operator="equal" value="normal"/>
<test name="gc-level" operator="equal" value="all"/>
</or>
</condition>
<condition name="gc-enabled-all" true="true" false="false">
<test name="gc-level" operator="equal" value="all"/>
</condition>
The flight recording was generated when the build stops. However, I am not 100% confident that it records everything. For a start, only few GC was reported within the Memory -> Garbage Collection page. I know this, because we also turned on the flag to write the GC into file. There is way more GC than what was reported in the flight recorder. More importantly, I am worried that the memory allocation result did not record accurate information (just like the GC events). In which case, we might have spent a lot of effort in tuning the wrong areas..
Have I missed any setting here?
Thank you in advance!