2015-10-08 21 views
2

我試圖用VisualVm剖析Java應用程序時有一個奇怪的行爲。VisualVM概要分析掛起,而儀表類

Hostsystem = SUSE Linux企業服務器10

的Java JDK(同樣是運行VisualVM及應用概況)= jdk1.8.0_40 64

剖析上運行的其他應用程序(如Tomcat)的與JDK相同的主機沒有這個問題。

在Windows上運行我的應用程序(從Eclipse運行)也可以正常工作。

開始剖析日誌讀取以下行後:

INFO [org.netbeans.ui.metrics.profiler]: Profiler Attach 
INFO [org.netbeans.ui.metrics.profiler]: Profiler Settings 
*** Profiler warning (Thu Oct 08 14:36:10 CEST 2015): class java/lang /UNIXProcess$$Lambda$9/1156856411, ldr = 0 not found anywhere 
*** Profiler warning (Thu Oct 08 14:36:10 CEST 2015): class java/lang/invoke/LambdaForm$DMH/1131480230, ldr = 0 not found anywhere 
*** Profiler warning (Thu Oct 08 14:36:10 CEST 2015): class java/lang/invoke/LambdaForm$MH/1901642836, ldr = 0 not found anywhere 
*** Profiler warning (Thu Oct 08 14:36:10 CEST 2015): class java/lang 
... and so on, stopping after 60 lines with similar output ... 

我的應用有以下JVM參數(BTW我在一些其他的點讀,有與設置TMP目錄,但刪除的問題參數也沒有幫助)

-XX:-UseLWPSynchronization 
-XX:+UseConcMarkSweepGC 
-Djava.rmi.server.hostname=<removed> 
-Duser.timezone=Europe/Berlin 
-Dcom.sun.management.config.file=/global/ECAS_TESTAS/ecastest/ecas/conf/management.properties 
-Dsun.rmi.transport.tcp.handshakeTimeout=180000 
-Dsun.rmi.dgc.client.gcInterval=600000 
-Dsun.rmi.dgc.server.gcInterval=600000 
-verbose:gc 
-XX:CompileCommand=exclude,ecas/logik/ELogikKomponentenVersion.doBerechnen 
-XX:CICompilerCount=2 
-Djava.io.tmpdir=/global/ECAS_TESTAS/ecastest/ecas/tmp 
-XX:NewSize=2100m 
-XX:SurvivorRatio=20 
-Xms10000m 
-Xmx10000m 
-XX:MaxPermSize=120m 

這裏你可以找到展示問題Screenshot

回答

1

經過一些關於發送sigterm(kill -3 pid)來產生堆棧跟蹤的研究後,我發現visualvm仍在解析可能的類。 之後,我注意到這個過程「。」在classpath中。所以我刪除它。現在它按預期工作。