java导出pdf_一张PDF了解JDK11 GC调优秘籍-附PDF下载
簡介
JDK11相比JDK10,添加了一個新的Source-File Mode,可以直接通過java來運行單個java源文件,而不需要進行編譯。同時還提供了新的HTTP API,支持響應(yīng)性stream。
當(dāng)然上面的都不是重點,重點的是JDK11是一個LTS版本,是繼JDK8之后的又一個LTS版本,也可能是大家日后使用的最多的一個版本。
所以JDK11的JVM參數(shù)吸收了JDK9,JDK10的新特性和改動,并在他們的基礎(chǔ)上進行了微調(diào)。
同樣在文章最后,我也將JDK11的GC調(diào)優(yōu)秘籍做成了一張PDF,歡迎大家下載。
廢棄的VM選項
JDK11和JDK9,JDK10相比,廢棄的選項都差不多。這里重點講下面幾個:
-XX:+AggressiveOptsaggressive的中文意思是激進的,有進取心的意思。這個參數(shù)的意思是啟用激進的優(yōu)化選項,默認情況下是禁止的,并且是作為一個體驗選項提供的。
因為這個選項可能在后面的版本中作為默認選項,所以在JDK11中是廢棄的。
-XX:+UseAppCDSAppCDS是在JDK9 JPMS中引入的新特性,可以提升java程序的啟動速度。
AppCDS默認情況下是開啟的所以這里也廢棄掉了。
注意,JVM中的參數(shù)如果是被廢棄掉了,并不一定說這個選項的特性JVM已經(jīng)不支持了,也有可能是JVM默認是開啟了這個選項。Source-File Mode
什么是Source-File Mode呢?
Source-File Mode就是指可以直接使用java命令來運行java源代碼,而不用使用javac進行編譯。
當(dāng)然這個只對單文件的源代碼有效。
有兩種方式使用Source-File Mode,一種是源文件后面帶.java后綴,如:
java HelloWorld.java一種是添加參數(shù)–source version選項:
java -source 11 HelloWorld這里的version指的是JDK版本號,可以取值6,7,8,9,10,11。如果沒有使用.java,則必須使用-source。
Source-File Mode的原理是將源代碼編譯到內(nèi)存中,然后執(zhí)行源代碼中的第一個class。
Code Heap狀態(tài)分析
我們知道JVM中的JIT編譯器會將一些熱點的java代碼編譯成機器碼,而這些機器碼會存儲在一個叫做code cache的地方。
CodeHeap就是用來生成和管理這些機器碼的類。每次存儲請求都會分配一定大小的空間,這個值是由CodeCacheSegmentSize來定義的。
當(dāng)然,為了提升效率,你可以將CodeCacheSegmentSize的大小設(shè)置為和cache line大小一致。不過這不是必須的。
Code Heap狀態(tài)分析就是分析code cache的狀態(tài)。
CodeHeap狀態(tài)分析分為兩個部分。 第一部分檢查整個CodeHeap并匯總所有認為有用/重要的信息。 第二部分可以根據(jù)需要選的特定的命令來輸出自己需要的那部分。
我們舉幾個例子:
實時分析:
jcmd <pid> Compiler.CodeHeap_Analytics [<function>] [<granularity>]其中function可以有下面的幾個選項:
- all – 列出所有的信息
- aggregate – 檢查CodeHeap,并記住本地結(jié)構(gòu)中的數(shù)據(jù)。
- UsedSpace – 輸出已使用的空間
- FreeSpace – 輸出空閑的空間
- MethodCount – 輸出method count信息
- MethodSpace – 輸出method space信息
- MethodAge – 輸出method age信息
- MethodNames – 輸出name信息
- discard – 釋放該方法的所有資源
granularity是和aggregate配合使用的,代表一個aggregate代表的存儲空間大小。
AppCDS
JDK11在AppCDS上面有所提升,可以支持從module path導(dǎo)出 archiving classes:
$ java -Xshare:dump -XX:SharedClassListFile=class_list_file -XX:SharedArchiveFile=shared_archive_file --module-path=path_to_modular_jar -m module_name使用:
$ java -XX:SharedArchiveFile=shared_archive_file --module-path=path_to_modular_jar -m module_name總結(jié)
同樣的,為JDK11特意準(zhǔn)備了一個PDF,下載鏈接如下:
JDK11GC-cheatsheet.pdf
本文鏈接:http://www.flydean.com/jdk11-gc-cheatsheet/最通俗的解讀,最深刻的干貨,最簡潔的教程,眾多你不知道的小技巧等你來發(fā)現(xiàn)!歡迎關(guān)注我的公眾號:「程序那些事」,懂技術(shù),更懂你!總結(jié)
以上是生活随笔為你收集整理的java导出pdf_一张PDF了解JDK11 GC调优秘籍-附PDF下载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 丁香园 武汉 神童_扒一扒武汉同济、协和
- 下一篇: android studio n3710