2012-05-31 63 views
1

我正在嘗試分析我的web應用程序,它是一個非常大的應用程序,並且在緩存和其他進程中佔用大量內存,所以很難進行堆轉儲然後進行分析,甚至在我我試圖通過JProfiler來分析它,它也工作得很慢。有沒有一種方法可以輕鬆做到這一點。我的應用程序幾乎從120 GB RAM中取出了30 GB。爲大型應用程序執行分析很困難

我已經讀過某處,我們可以分配不同數量的內存到堆的不同部分。我們的應用程序中沒有這樣做。我們剛剛給了-xmx -110g。這意味着我們已經給出了110GB的最大RAM。我可以檢查它分配給多少塊內存,如老舊,伊甸園空間,倖存者空間。

+1

[*以下是一個方法*](http://stackoverflow.com/a/317160/23771)你應該嘗試。這是低科技,但有效。 –

回答

1

分析任何使用30gb的系統將是一個挑戰。分析可收集大量信息,並增加更多開銷。

最好的方法是將應用程序分解爲模塊 - 您確實創建了一個模塊化應用程序,對吧?然後,您可以使用樣本數據自行剖析每個模塊。這樣你可以限制開銷和消耗的內存量。

您可以參考http://java.dzone.com/articles/java-performance-tuning?page=0,1瞭解一些性能調整技巧,您可以設置不同的內存使用級別。