Профилирование в IntelliJ с использованием ошибки бортового самописца Java

#intellij-idea #profiler #java-16

Вопрос:

У меня есть несколько медленных тестов, и я хотел бы выяснить, почему они медленные. Поэтому я попытался профилировать их с помощью бортового самописца Java в IntelliJ. Тестовый запуск зеленый, но профилировщик не выдает выходных данных.

Установка:

  • IntelliJ IDEA 2021.2.2 (Окончательная версия)
  • AdoptOpenJDK-16.0.1 9
  • Джунит 5.7.2
  • macOS Биг Сур
  • Я создал новую пустую папку в своем домашнем каталоге и настроил ее в разделе «Профилировщик» > «Настройки» >> «Изменить папку моментальных снимков…»

Ошибка:

Ошибка профилировщика: Не удается проанализировать файл дампа: /Users/me/MyDirectory/TestName_date_time.jfr (такого файла или каталога нет)

И действительно, этот файл (как и любой другой в этом каталоге) был создан.

Тест был запущен со следующей командой:

 /Library/Java/JavaVirtualMachines/adoptopenjdk-16-openj9.jdk/Contents/Home/bin/java -ea -Didea.test.cyclic.buffer.size=1048576 -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=55496:/Applications/IntelliJ IDEA.app/Contents/bin -XX: UnlockDiagnosticVMOptions -XX: DebugNonSafepoints -XX: FlightRecorder -XX:StartFlightRecording=name="TestName_date_time",settings="default",dumponexit=true,filename="/Users/me/myDirectory/TestName_date_time.jfr" -XX:FlightRecorderOptions=stackdepth=2048 -Dfile.encoding=UTF-8 -classpath [...] com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit5 my.package.VerySlowTest
 

Как я могу исправить свою настройку, чтобы иметь возможность запускать профилировщик?

Примечание. Попытка запустить его с помощью асинхронного профилировщика приводит к аналогичной ошибке.

Комментарии:

1. Пожалуйста, сообщите по адресу youtrack.jetbrains.com/newIssue?project=IDEA с образцом снимка для повторной настройки. Посмотрите, работает ли другой поставщик JDK лучше.

2. Спасибо @CrazyCoder! Во время отчета я наткнулся на эту существующую проблему: youtrack.jetbrains.com/issue/SCL-17707 Я думаю, у меня та же проблема. Однако я не нашел обходного пути.