2011-10-28 34 views
1

我想知道在我的應用程序中處理單個請求所創建的額外對象的數量。支持標記堆的Mac OS X的Java分析器

我記得OptimizeIt曾經能夠做到這一點。步驟,我記得它是:

  1. 連接Profiler的應用
  2. 在服務器上運行一個小的負荷,使所有初始化活動發生
  3. 「強制GC」從分析器,它運行一個完整的GC
  4. 「標記堆」,所以現在我們知道堆中每種類型的實例數
  5. 發送一個請求到服務器。
  6. 探查顯示自上次「標記」是什麼對象被創建
  7. 「強制GC」再次,看看是否有物體揮之不去

的Optimizeit似乎沒有再進行積極的開發(請指正如果我錯了),它似乎並不支持Mac OS X.

是否有任何其他支持上述場景的Mac OS X Java分析器?

回答

0

查看Sun/Oracle的JVisualVM。在它的基本配置中,我不認爲它滿足你的需求,但它有很多插件。

1

JProfiler可以做到這一點。您

  1. 連接到正在運行的應用程序
  2. 開始錄製分配
  3. 執行你的使用情況
  4. 採取堆快照並選中「選擇記錄對象」堆遍歷選項對話框

然後,堆棧的初始對象集只包含您的用例創建的強引用對象。

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

0

Memory sampler從VisualVM的看一看,在「三角洲」模式下使用它。