在我參與的幾乎所有較大的Java項目中,我都注意到應用程序的服務質量隨着容器的正常運行時間而下降。這很可能是由於代碼中的內存泄漏。處理大型Java項目中的內存泄漏的最佳實踐?
解決此問題的正確方法顯然是追溯問題的根本原因並修復代碼中的泄漏。解決這個問題的方法很簡單,就是重啓Tomcat(或者你正在使用的任何一個servlet容器)。
這是我的三個問題:
假設你選擇通過跟蹤問題(內存泄漏)的根本原因,解決問題,你會如何收集數據以放大的問題?
假設您選擇通過簡單地重新啓動容器來加快速度的快速和骯髒的方式,您將如何收集數據以選擇最佳的重新啓動週期?
您是否能夠長時間部署和運行項目,而無需重新啓動servlet容器以重獲生機?或者偶爾的servlet重新啓動一個人必須接受的東西?
+1爲簡單,沒有廢話的答案。重新啓動容器是一個簡單的解決方法,但不是一個長期的解決方案。自動執行容器重啓是一種自動化的解決方法,它具有解決方案的一些優點,但也有很多缺點。 – 2010-06-02 18:47:47