GC頻繁抖動的主要原因


內存抖動

內存抖動是因為大量的對象被創建又在短時間內馬上被釋放,如循環中分配對象,很容易引起GC,特別是在較大的循環次數或者一個循環中分配較多的臨時對象時。

瞬間產生大量的對象

瞬間產生大量的對象,即使對象不大,也可能使得堆的可用空間達到閾值出發GC或導致堆的擴容產生GC。

分配大內存塊的對象

分配大內存塊的對象,如圖片,大的byte數組等,雖然堆剩余內存空間足夠,但是仍然可能出發GC,因為內存碎片導致了找不到連續空間來分配這大內存,從而出發GC。

內存泄露

內存泄露,會導致可用內存越來越少,而且導致碎片也可能越來越嚴重,這樣就更加容易出發GC。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM