關於Java 9 中的 GC 調優

並不是每個程序都需要調優。如果一個程序性能表現和預期一樣,你不必付出額外的精力去提高它的性能。然而,在程序調試完成之後,很難馬上就滿足它的性能需求,於是就有了調優這項工作。無論哪種編程語言,對應用程序進行調優都需要豐富的技術知識並且注意力高度集中。另外,你也不應該用相同的方式對兩個程序調優,因為每個程序都有它自己獨特的運作方式和不同的資源使用方式。正因如此,調優比寫程序需要更多基礎知識。例如,你需要熟悉虛擬機、操作系統和計算機架構。而當你面對在這些知識基礎上編寫的程序時,就能成功地對它進行調優。

關於Java 9 中的 GC 調優

GC的作用範圍

要談GC的作用範圍,首先要談JVM的內存結構,JVM內存中主要有以下幾個區域:堆、方法區(JVM規範中的叫法,Hotspot大致對應的是Metaspace)、棧、本地方法棧、PC等,其中GC主要作用在堆上。

其中堆和方法區是所有線程共享的,其它則為線程獨有,HotSpot JVM使用基於分代的垃圾回收機制,所以在堆上又分為幾個不同的區域。

調優方法

建議你使用如下方法對程序進行調優。

首先,檢查性能調優是否必要。測量性能不是一件簡單的工作,你也不能保證每次都獲得滿意的結果。因此如果程序已經滿足預期性能需求,不必在調優上增加額外的投入了。

關於Java 9 中的 GC 調優

問題只出在一個地方,你要做的就是去解決掉它。二八定律(Pareto principle)對性能調優同樣適用。這不是說某個模塊的低性能一定只源於一個問題,而是強調我們應該在調優時把注意力放在影響最大的那個問題上。在處理好了最重要的之後,你才應該去解決剩下其他的。也就是建議一次只對一個問題進行修復。

尚學堂立志解決中國教育不公平和低效率問題,幫助千千萬萬被傳統教育方式耽誤的人,傳授實用、前沿的知識,成就學員個人理想,為愛你的人和你愛的人創造美好的生活。尚學堂12大精英團隊+各類實戰項目,真正實現1+1>10的目標效果。幫助學員迅速成長,持久騰飛,成就學員“高富帥”人生


分享到:


相關文章: