當前位置:
首頁 > 知識 > JVM學習系列學習一

JVM學習系列學習一

本文主要內容:

一:為什麼要對JVM進行優化?

我們在自己電腦上進開發的時候,幾乎很少考慮對JVM進行優化。但是,我們寫的代碼,放到生成環境會出現入下各種情況:

1:運行的應用越來越「卡」了、日誌不輸出、頁面點擊沒反應了

2:為什麼伺服器CPU使用率突然飆升上來了

3:在多線程應用下,如何分配線程數量?

……

怎麼解決?重啟嗎?萬能的重啟服務嗎?生成環境能隨隨便便就重啟嗎 ?

通過本系列教程,我們將對JVM有更深入的學習。目的:我們不僅僅讓程序能跑起來,而且是要跑的更快!可以分析解決在生產環境中所遇到的各種「棘手」的問題。

註:本套課程使用的JDK版本為1.8.所以,建議學習的朋友也用1.8的。

二:JVM的運行參數

在JVM中有很多的參數是可以進行設置的。這樣做的目的是可以讓JVM在各種環境中都能夠高效的運行。絕大部分的參數保持默認的即可。

2.1:JVM三種參數類型

標準參數

-help

-version

標準參數,一般都是很穩定的,既是在未來的JVM版本中也不會被去掉或者改變的。可以使用java -help查看所有的標準參數。

還記得我們JDK剛安裝完成後,查看JDK版本的命令嗎?

Java -version 就是標準的參數。

-X參數(非標準參數)

-Xint

-Xcomp

-X參數是非標準的參數,在不同的版本中,參數可能會有所不同,可以通過Java -X命令來查看:

-XX參數(使用頻率較高的)

-XX:newSize

-XX: UseSerialGC

-XX參數也是非標準參數,主要用於JVM的調優和debug操作。

-XX參數的使用有2種方式,一種是boolean類型,一種是非boolean類型。

Boolean類型的

格式:-XX:[ -]

作用:標識啟用或禁用屬性

如:-XX: DisableExplicitGC。表示禁用手動調用GC操作,也就是說調用SysTem.gc()無效的。

非Boolean類型:

格式:-XX:=

作用:表示屬性的值為

如:-XX:NewRatio=1。表示新生代和老年代的比值。

-Xms與-Xmx參數:

-Xms與-Xmx分別是設置JVM的堆內存的初始值大小和最大大小。

-Xmx2048m:等價於-XX:maxHeapSize,設置JVM最大堆內存為2048M

-Xms512m:等價於-XX:InitialHeapSize,設置JVM初始堆內存為512M

適當的調整JVM的內存大小,可以充分雷勇伺服器資源,讓程序跑的更快。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 凱哥java 的精彩文章:

蘋果用戶:用siri翻譯華為牛B發現蘋果侮辱華為
怎麼將本地項目放到碼雲 gitee上面?圖文詳解

TAG:凱哥java |