2010-11-07 65 views
1

我試圖用VisualVM剖析Nutch。 Lucene是Nutch核心的一部分,負責生成url索引和由於某些查詢而搜索這些索引。我通過Apache Tomcat運行Nutch,我想確定Nutch在各種函數調用(包括Lucene調用)中花費了多少時間,但是當我嘗試使用VisualVM進行配置文件時,我得到了一堆關於Tomcat的分析數據,而不是Nutch或Lucene 。我在這裏做錯了什麼?在Nutch中剖析Lucene

+0

你是什麼意思,你只能得到有關Tomcat的數據?既然tomcat是servelet,那麼你不應該期望看到nutch或lucene在自己的進程中運行,對吧? – Xodarap 2010-11-08 18:31:08

+0

的確如此,我在尋找什麼時候servlet使用Nutch函數。 – 2010-11-09 13:33:02

回答

0

我曾經嘗試在Tomcat調用中查找Lucene時間。 你需要做的是:

  1. 使用VisualVM 1.2.2。
  2. 選擇相關過程並按「配置文件」。
  3. 選中「設置」複選框。這應該打開一個「CPU設置」選項卡,並且可以填寫字段。
  4. 在「開始分析從班:」在你的代碼 (例如com.my.company.NutchUser)
  5. 取消選中寫一個入口點「簡介新可運行」。
  6. 選擇 「僅限配置類:」 並在其下寫: org.apache.lucene * org.apache.nutch *
  7. 按 「檔案CPU」 按鈕。 我相信如果你做到了這一切,那麼運行你的程序並拍攝偶爾的快照,你會沒事的。

或者,This guy suggests doing stack sampling instead of profiling。我從來沒有做過,但它聽起來很有趣。

+0

這非常有用。我唯一的問題是關於第4步。你是什麼意思?我會在哪裏添加這個? – 2010-12-01 18:51:49

+0

請參閱我的編輯步驟3.一旦選中「設置」複選框,您應該會看到屏幕更改。 – 2010-12-02 06:37:51