Можно ли сделать снимок для Java Profilers с Java? - PullRequest
0 голосов
/ 11 января 2019

Я хотел бы периодически делать снимок моей среды выполнения (файлы .snapshot, используемые в профилировщиках для Java, такие как YourKit, JProfiler, VisualVM и т. Д.), Возможно ли сделать снимок, вызвав метод или что-то еще? С Java работает на том же jvm?

Ответы [ 2 ]

0 голосов
/ 11 января 2019

У каждого профилировщика будет свой механизм периодического сохранения снимков.

Для JProfiler используйте триггер «Таймер» с действием «Сохранить снимок». Если вы хотите записать данные в течение ограниченного времени непосредственно перед сохранением снимка, добавьте следующую последовательность действий триггера:

  • «Начать запись» (с выбранными типами записи)
  • «Сон» (на желаемое количество времени)
  • «Остановить запись»
  • «Сохранить снимок» (с выбранным «добавить уникальный номер к имени файла»)

enter image description here

Если вы предпочитаете управлять записью и сохранением снимков программно с одной и той же JVM, используйте Controller API , например:

Controller.startCPURecording(true);
Thread.sleep(10000);
Controller.saveSnapshot(new File("snapshot.jps"));
0 голосов
/ 11 января 2019

Я бы предложил периодически запускать Java Flight Recorder.

Что это? Это инструмент профилирования, похожий на те, что вы уже упоминали, он собирает все обычные данные .

Как это использовать? Здесь - краткое описание того, как его запустить. Будьте внимательны, приложению, которое вы хотите профилировать, нужны эти дополнительные параметры JVM :

java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder

И, наконец, для периодического планирования вам нужна команда, которую вы можете использовать из crontab. Для этого вы можете использовать пример команды из предыдущей ссылки:

jcmd 5368 JFR.start duration=60s filename=myrecording.jfr

Где "5368" - это PID вашего профилированного приложения, а остальное не требует пояснений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...