VisualVM ломает причал
Я пытаюсь профилировать приложение, которое запускается "mvn jetty:run", когда я подключаю к нему VisualVM и нажимаю на Сбой профиля jetty с помощью:
Profiler Agent: Waiting for connection on port 5140 (Protocol version: 8)
Profiler Agent: Established local connection with the tool
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6da5e5d4, pid=5124, tid=5704
#
# JRE version: 6.0_16-b01
# Java VM: Java HotSpot(TM) Client VM (14.2-b01 mixed mode windows-x86 )
# Problematic frame:
# V [jvm.dll+0x1ae5d4]
#
# An error report file with more information is saved as:
# c:\dev\workspaces\credentials\credentialsgui\hs_err_pid5124.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
Profiler Agent: JNI On Load Initializing...
Profiler Agent: JNI OnLoad Initialized succesfully
То же самое я получаю при запуске другого приложения с помощью mvn jetty:run.
Что забавно, что когда я использовал профилировщик из NetBeans (должен быть таким же, как VisualVM), он работает правильно, но я бы предпочел использовать VisualVM, если это поможет?
VisualVM от jdk 1.6 (но я использовал также и до загружаемой версии).
1 ответ
В документации по VisualVM сказано, что если вы используете Java 6, вы должны отключить общий доступ к классам при запуске виртуальной машины:
Чтобы профилировать приложение, работающее в JDK 6, необходимо отключить общий доступ к классам для приложения, в противном случае приложение может аварийно завершить работу. Чтобы отключить совместное использование классов, запустите приложение с аргументом -Xshare:off.
Я подозреваю, что Maven не использует эту опцию по умолчанию при запуске Jetty.