У нас есть сборка производительности, которая запускает наше приложение со следующими включенными флагами:
-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=dumponexit=true,dumponexitpath=/tmp/ImaginaryApplication/logs/flightRecorder.jfr -XX:StartFlightRecording=defaultrecording=true,settings=MyCustomSetting
Пользовательская настройка была создана с помощью пользовательского интерфейса Flight Recorder со всеми включенными настройками.Я думаю, что важный раздел, который имеет отношение к моему вопросу здесь, следующий:
<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>
Запись полета была сгенерирована, когда сборка останавливается.Тем не менее, я не уверен на 100%, что он записывает все.Для начала, на странице «Память -> Сборка мусора» было сообщено только о нескольких GC.Я знаю это, потому что мы также включили флаг, чтобы записать GC в файл.Существует гораздо больше ГХ, чем то, что сообщалось в регистраторе полета.Что еще более важно, я обеспокоен тем, что в результате распределения памяти не была записана точная информация (как и события GC).В этом случае мы могли бы потратить немало усилий на настройку неправильных областей ..
Я пропустил какие-либо настройки здесь?
Заранее спасибо!