看板 java 關於我們 聯絡資訊
大家好, 小弟最近寫了一個Server程式, 執行之後會一直監聽是否有request進來, 一旦有新的request進來之後, 就去啟動一個新的執行續, new一個新的物件, 並做一些處理, 但在該執行序結束之後, Server main thread 所使用的記憶體空間雖然有減少, 但因為多執行序執行時記憶體不足, 導致JVM一直加大heap空間, 即便之後thread已經結束, heap空間仍佔住一樣大的記憶體使用量, Server程式運行一段時間之後, heap空間就會越來越肥大, 導致記憶體越吃越多, 請問這要怎樣解決呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.110.208 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1527745538.A.61F.html
ssccg: 你的heap空間是指JVM process用的記憶體,還是監控JVM中有 05/31 14:43
ssccg: 沒被GC的物件? 05/31 14:43
ssccg: 前者是正常的,本來就不會頻繁把記憶體還OS,可以設定調整 05/31 14:44
ssccg: 後者就看那些你覺得已經沒用卻沒被GC的物件是哪來的.. 05/31 14:45
pass78: 用thread pool,不需要一直new thread,參考mina or netty 05/31 23:29