• 招生咨詢熱線:4008-569-579 
  • 手機版
    用手機掃描二維碼直達商品手機版
招生咨詢熱線
4008-569-579
機構主頁 > 培訓資料 > Java培訓:了解Java中的垃圾收集(GC)性能問題
機構主頁 > 培訓資料>Java培訓:了解Java中的垃圾收集(GC)性能問題

Java培訓:了解Java中的垃圾收集(GC)性能問題

來源:廣州達內教育        時間:2023-05-30        熱度:23℃        返回列表

  自動化GC的一個優(yōu)點是開發(fā)人員不需要真正了解它是如何工作的。不幸的是,這意味著許多開發(fā)人員不了解它是如何工作的。了解垃圾收集和許多可用的GC,有點像了解Linux

CLI命令。從技術上講,你不需要使用它們,但是了解并習慣使用它們會對你的生產(chǎn)力產(chǎn)生重大影響。想要了解有關GC的更多知識,可以報名參加java培訓來學習,在專業(yè)老師的教學指導下,你可以很快掌握GC使用技能。


  與CLI命令一樣,有一些絕對的基礎。ls命令查看父文件夾中的文件夾列表,mv命令將文件從一個位置移動到另一個位置,等等。在GC中,這些命令相當于知道有多個GC可供選擇,并且GC可能會導致性能問題。當然,還有很多東西需要學習(關于使用Linux

CLI和垃圾收集)。


  學習Java的垃圾收集過程的目的是為了學習如何有效地實現(xiàn)和維護適合你特定環(huán)境的具有最佳性能的正確GC。了解垃圾收集會影響應用程序性能是最基本的,有許多高級技術可以提高GC性能并減少其對應用程序可靠性的影響。


  GC性能問題


  1.內存泄漏


  通過了解堆結構和垃圾收集的執(zhí)行方式,我們知道內存使用量會逐漸增加,直到發(fā)生垃圾收集事件并且使用量下降為止。被引用對象的堆利用率通常保持穩(wěn)定,因此丟棄的卷應該大致相同。在java培訓中,會有關于垃圾回收的處理方法和技巧的課程,學好這些技巧,有助于更好地進行開發(fā)項目,少出問題。


  在內存泄漏的情況下,每個GC事件都會清除一小部分堆對象(盡管留下的許多對象未被使用),因此堆利用率將繼續(xù)增加,直到堆內存已滿,并引發(fā)OutOfMemoryError異常,原因是GC只將未引用的對象標記為刪除,因此,即使引用的對象不再使用,它也不會從堆中清除。




  2.持續(xù)的“Stop the World”事件


  在某些場景中,垃圾收集可以調用Stop the

World事件,因為當它發(fā)生時,JVM中的所有線程(以及在其上運行的應用程序)都將停止,以允許GC執(zhí)行。在健康的應用程序中,GC執(zhí)行時間相對較短,對應用程序性能影響不大。


  但是,在不太理想的情況下,Stop the World事件可能會極大地影響應用程序的性能和可靠性。如果GC事件需要Stop

the

World暫停并需要2秒鐘執(zhí)行,則該應用程序的最終用戶將在運行該應用程序的線程停止以允許GC時經(jīng)歷2秒鐘的延遲。通過java培訓學習,可以幫助你更好地了解垃圾回收相關問題,提高代碼質量。


  當內存泄漏發(fā)生時,連續(xù)Stop the

World事件也是有問題的。由于每次執(zhí)行GC都會清除較少的堆內存空間,因此剩余內存填滿所需的時間更短。當內存已滿時,JVM會觸發(fā)另一個GC事件。最終,JVM將反復運行Stop

the World事件,從而引起重大性能問題。


  3.CPU使用率


  這一切都取決于CPU的使用。連續(xù)GC/Stop the

World事件的一個主要癥狀是CPU使用量激增。GC是一個計算量很大的操作,因此可能需要占用更多的CPU資源。對于運行并發(fā)線程的GC,CPU使用率甚至更高。為您的應用程序選擇正確的GC將對CPU使用產(chǎn)生最大的影響,但也有其他方法可以在這方面優(yōu)化以獲得更好的性能。


  我們可以從圍繞垃圾收集的這些性能問題中了解到,無論GCs系統(tǒng)變得多么先進(而且越來越先進),它們的致命弱點仍然是一樣的:冗余和不可預測的對象分配。要提高應用程序性能,選擇正確的GC是不夠的。我們需要知道這個過程是如何工作的,我們需要優(yōu)化我們的代碼,這樣我們的GCs就不會占用過多的資源,或者在我們的應用程序中造成過多的暫停。Java培訓課程,可以讓你學習更多的內存管理技巧,寫出高質量和已與維護的代碼!

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部