2011-10-05 47 views
1

我開發了一個很好的Java多線程遺傳算法,該算法運行在運行帶有128GB內存的CentOS的16核系統上。在Linux系統上使用Java/Eclipse TPTP進行16個線程/ 16個核心代碼概要分析

我想要使用代碼分析器來查看當我增加模擬中的突變數量超過某個特定點時,是否可以確定哪部分代碼陷入了困境。記憶似乎不是問題。

所以我在服務器上安裝了VNC和Eclipse 3.6SR2並安裝了TPTP插件。

問題:最大的問題是,當我正在執行TPTP「執行時間分析」(我使用'top'進行檢查)時,eclipse看起來並不像使用多個核心。通常,當程序從命令行運行時,它使用與程序中的線程一樣多的內核。

有沒有辦法在eclipse配置中修復這個問題?

+0

我剛剛檢查過,當使用「調試」或「運行」時,使用了所有16個內核,但在使用「Profile」時僅使用了一個內核。另一個問題是內存,在我的Debug/Run配置下。我使用-Xmx32g選項將32GB分配給JVM,但是TPTP似乎沒有分配內存或處理器。 –

回答

0

獲得真實的分析器,如YourKit,並在啓動時將代理添加到您的應用程序。

然後,您可以使用運行代理的端口打開SSH隧道,並且可以遠程配置應用程序。它在論壇中擁有相當不錯的文檔和健康的社區。在我看來,YourKit對多線程應用程序非常棒,我使用它很多。

無需VNC並在生產服務器上安裝Eclipse。

0

免責聲明:我公司開發的JProfiler

使用JVMTI不應該針對多核線程分配更改爲常規執行的探查。 TPTP可能不是您的最佳選擇。

市場上有幾個功能強大的Java分析器。最着名的免費選項是VisualVM,在多線程和監視器爭用分析領域具有更強大的分析功能的商業替代品是JProfiler - 這是一個功能完整的免費試用版。