- 移動(dòng)廁所在旅游景點(diǎn)的意義和作用
- 垃圾房廠家告訴您垃圾房除了存放垃圾還有哪些用途呢?
- 垃圾房生產(chǎn)廠家為您介紹垃圾房是如何制作的工藝和要求
- 揚(yáng)州保安崗?fù)さ某R姂?yīng)用是什么?
聯(lián)系人:張經(jīng)理
手 機(jī):17396898298
電 話:17396898298
揚(yáng)州保安崗?fù)ぴ瓌?chuàng)了解Java中的垃圾
原標(biāo)題:了解Java中的垃圾收集(GC)性能問題
開通搜狐視頻黃金會(huì)員,尊享更高品質(zhì)體驗(yàn)!
1080P及以上畫質(zhì)僅為黃金會(huì)員專享>
開通/續(xù)費(fèi)會(huì)員自動(dòng)化GC的一個(gè)優(yōu)點(diǎn)是開發(fā)人員不需要真正了解它是如何工作的。不幸的是,這意味著許多開發(fā)人員不了解它是如何工作的。了解垃圾收集和許多可用的GC,有點(diǎn)像了解Linux CLI命令。從技術(shù)上講,你不需要使用它們,但是了解并習(xí)慣使用它們會(huì)對(duì)你的生產(chǎn)力產(chǎn)生重大影響。
與CLI命令一樣,有一些絕對(duì)的基礎(chǔ)。ls命令查看父文件夾中的文件夾列表,mv命令將文件從一個(gè)位置移動(dòng)到另一個(gè)位置,等等。在GC中,這些命令相當(dāng)于知道有多個(gè)GC可供選擇,并且GC可能會(huì)導(dǎo)致性能問題。當(dāng)然,還有很多東西需要學(xué)習(xí)(關(guān)于使用Linux CLI和垃圾收集)。
學(xué)習(xí)Java的垃圾收集過程的目的是為了學(xué)習(xí)如何有效地實(shí)現(xiàn)和維護(hù)適合你特定環(huán)境的具有最佳性能的正確GC。了解垃圾收集會(huì)影響應(yīng)用程序性能是最基本的,有許多高級(jí)技術(shù)可以提高GC性能并減少其對(duì)應(yīng)用程序可靠性的影響。
GC性能問題
1. 內(nèi)存泄漏
通過了解堆結(jié)構(gòu)和垃圾收集的執(zhí)行方式,我們知道內(nèi)存使用量會(huì)逐漸增加,直到發(fā)生垃圾收集事件并且使用量下降為止。被引用對(duì)象的堆利用率通常保持穩(wěn)定,因此丟棄的卷應(yīng)該大致相同。垃圾房生產(chǎn)廠家
在內(nèi)存泄漏的情況下,每個(gè)GC事件都會(huì)清除一小部分堆對(duì)象(盡管留下的許多對(duì)象未被使用),因此堆利用率將繼續(xù)增加,直到堆內(nèi)存已滿,并引發(fā)OutOfMemoryError異常,原因是GC只將未引用的對(duì)象標(biāo)記為刪除,因此,即使引用的對(duì)象不再使用,它也不會(huì)從堆中清除。
2. 持續(xù)的Stop the World事件
在某些場(chǎng)景中,垃圾收集可以調(diào)用Stop the World事件,因?yàn)楫?dāng)它發(fā)生時(shí),JVM中的所有線程(以及在其上運(yùn)行的應(yīng)用程序)都將停止,以允許GC執(zhí)行。在健康的應(yīng)用程序中,GC執(zhí)行時(shí)間相對(duì)較短,對(duì)應(yīng)用程序性能影響不大。
但是,在不太理想的情況下,Stop the World事件可能會(huì)極大地影響應(yīng)用程序的性能和可靠性。如果GC事件需要Stop the World暫停并需要2秒鐘執(zhí)行,則該應(yīng)用程序的最終用戶將在運(yùn)行該應(yīng)用程序的線程停止以允許GC時(shí)經(jīng)歷2秒鐘的延遲。通過java培訓(xùn)學(xué)習(xí),可以幫助你更好地了解垃圾回收相關(guān)問題,提高代碼質(zhì)量。
當(dāng)內(nèi)存泄漏發(fā)生時(shí),連續(xù)Stop the World事件也是有問題的。由于每次執(zhí)行GC都會(huì)清除較少的堆內(nèi)存空間,因此剩余內(nèi)存填滿所需的時(shí)間更短。當(dāng)內(nèi)存已滿時(shí),JVM會(huì)觸發(fā)另一個(gè)GC事件。最終,JVM將反復(fù)運(yùn)行Stop the World事件,從而引起重大性能問題。垃圾房生產(chǎn)廠家
3. CPU使用率
這一切都取決于CPU的使用。連續(xù)GC/Stop the World事件的一個(gè)主要癥狀是CPU使用量激增。GC是一個(gè)計(jì)算量很大的操作,因此可能需要占用更多的CPU資源。對(duì)于運(yùn)行并發(fā)線程的GC,CPU使用率甚至更高。為您的應(yīng)用程序選擇正確的GC將對(duì)CPU使用產(chǎn)生最大的影響,但也有其他方法可以在這方面優(yōu)化以獲得更好的性能。
我們可以從圍繞垃圾收集的這些性能問題中了解到,無論GCs系統(tǒng)變得多么先進(jìn)(而且越來越先進(jìn)),它們的致命弱點(diǎn)仍然是一樣的:冗余和不可預(yù)測(cè)的對(duì)象分配。要提高應(yīng)用程序性能,選擇正確的GC是不夠的。我們需要知道這個(gè)過程是如何工作的,我們需要優(yōu)化我們的代碼,這樣我們的GCs就不會(huì)占用過多的資源,或者在我們的應(yīng)用程序中造成過多的暫停。返回搜狐,查看更多
責(zé)任編輯:
- 上一個(gè):揚(yáng)州保安崗?fù)陌滋斓胶谝?,金山垃?/a>
- 下一個(gè):垃圾房生產(chǎn)廠家汕頭開展生活垃圾收集車輛專項(xiàng)整
-
2022-03-26 13:57:29移動(dòng)廁所在旅游景點(diǎn)的意義和作用
-
2023-03-08 10:08:11垃圾房廠家告訴您垃圾房除了存放垃圾還有哪些用途呢?
-
2023-03-02 10:51:28垃圾房生產(chǎn)廠家為您介紹垃圾房是如何制作的工藝和要求
-
2023-02-24 10:04:03揚(yáng)州保安崗?fù)さ某R姂?yīng)用是什么?
-
2023-02-21 10:50:36導(dǎo)致?lián)P州保安崗?fù)ぢ┧脑蛴心男?
-
2023-02-16 10:10:07相關(guān)產(chǎn)品