簡體   English   中英

System.exit在OpenJDK 7 / FreeBSD上似乎花費很長時間

[英]System.exit appears to take a long time on OpenJDK 7 / FreeBSD

我在FreeBSD 9.0-RELEASE i386上運行的Java下運行的Java子進程的性能出現問題。

對於此程序,System.exit()大約需要2.6秒才能運行。 我不知道為什么。 在Windows上需要0.025秒。 更新:它還在OpenJDK 6上運行得更快。

在ktrace下運行OpenJDK7會在關機期間顯示以下的大量序列:

26795 Java 1.808597調用_umtx_op(0x2831e068,0xf,0,0,0xbf7a9870)
26795 Java 1.838640 RET _umtx_op -1 errno 60操作超時

我如何弄清楚程序在這里試圖做什么? 或者,是否有簡單的解決方法或解決方案? 通過Web搜索來判斷,這個問題似乎很頻繁地出現在FreeBSD的OS級別上,但是我仍在分析發現的內容(並嘗試學習libthr等)。

除了打印時間戳記之外,我沒有添加任何關機鈎子,系統也沒有添加關機鈎子,沒有要刪除的文件,也沒有runFinalizersOnExit。 系統似乎在本機方法java.lang.Shutdown.halt0中花費時間,我仍在嘗試分析該方法。

操作數0xf為UMTX_OP_WAKE_PRIVATE(請參見/usr/src/sys/sys/umtx.h )。 這嘗試喚醒內核線程,但失敗。

關於失敗的原因現在無法說。 這可能是Java的死鎖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM