[問題] JAVA 多執行續 記憶體問題

看板java作者 (tnsshnews)時間6年前 (2018/05/31 13:45), 編輯推噓0(005)
留言5則, 2人參與, 6年前最新討論串1/1
大家好, 小弟最近寫了一個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

05/31 14:43, 6年前 , 1F
你的heap空間是指JVM process用的記憶體,還是監控JVM中有
05/31 14:43, 1F

05/31 14:43, 6年前 , 2F
沒被GC的物件?
05/31 14:43, 2F

05/31 14:44, 6年前 , 3F
前者是正常的,本來就不會頻繁把記憶體還OS,可以設定調整
05/31 14:44, 3F

05/31 14:45, 6年前 , 4F
後者就看那些你覺得已經沒用卻沒被GC的物件是哪來的..
05/31 14:45, 4F

05/31 23:29, 6年前 , 5F
用thread pool,不需要一直new thread,參考mina or netty
05/31 23:29, 5F
文章代碼(AID): #1R3um2OV (java)
文章代碼(AID): #1R3um2OV (java)