嗨我正在開發基於Web的Java工具。我們在兩臺獨立的服務器上部署了兩個我們的工具實例 - 一個在生產中(由許多客戶同時使用)和一個在我很少使用的開發環境中。這兩個實例,開發和生產,部署在具有相同硬件規格的完全等效的服務器中,具有確切的代碼,堆大小大小,應用服務器,版本等。生產中的性能問題
但是我觀察到生產實例中的緩慢即使在客戶使用量爲零的夜晚的奇怪小時開發實例(我們有工具來監控客戶在生產中的使用情況)。這是令人驚訝的,因爲所有因素都是相同的。我假設由於生產實例被高度使用,堆中的堆幾乎是完整的和碎片化的,而堆中的堆相對自由且沒有碎片。這就是爲什麼開發實例要快得多,即使一切都一樣。這是否是一個合理的假設,因爲碎片化的幾乎完整的堆將花費更多時間來創建對象,從而降低性能?
此模式可能有助於http://www.rationaljava.com/2015/02/how-to-detect-and-diagnose-slow-code-in.html – Dan