日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java导出pdf_一张PDF了解JDK11 GC调优秘籍-附PDF下载

發(fā)布時(shí)間:2024/9/27 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java导出pdf_一张PDF了解JDK11 GC调优秘籍-附PDF下载 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡(jiǎn)介

JDK11相比JDK10,添加了一個(gè)新的Source-File Mode,可以直接通過java來運(yùn)行單個(gè)java源文件,而不需要進(jìn)行編譯。同時(shí)還提供了新的HTTP API,支持響應(yīng)性stream。

當(dāng)然上面的都不是重點(diǎn),重點(diǎn)的是JDK11是一個(gè)LTS版本,是繼JDK8之后的又一個(gè)LTS版本,也可能是大家日后使用的最多的一個(gè)版本。

所以JDK11的JVM參數(shù)吸收了JDK9,JDK10的新特性和改動(dòng),并在他們的基礎(chǔ)上進(jìn)行了微調(diào)。

同樣在文章最后,我也將JDK11的GC調(diào)優(yōu)秘籍做成了一張PDF,歡迎大家下載。

廢棄的VM選項(xiàng)

JDK11和JDK9,JDK10相比,廢棄的選項(xiàng)都差不多。這里重點(diǎn)講下面幾個(gè):

-XX:+AggressiveOpts

aggressive的中文意思是激進(jìn)的,有進(jìn)取心的意思。這個(gè)參數(shù)的意思是啟用激進(jìn)的優(yōu)化選項(xiàng),默認(rèn)情況下是禁止的,并且是作為一個(gè)體驗(yàn)選項(xiàng)提供的。

因?yàn)檫@個(gè)選項(xiàng)可能在后面的版本中作為默認(rèn)選項(xiàng),所以在JDK11中是廢棄的。

-XX:+UseAppCDS

AppCDS是在JDK9 JPMS中引入的新特性,可以提升java程序的啟動(dòng)速度。

AppCDS默認(rèn)情況下是開啟的所以這里也廢棄掉了。

注意,JVM中的參數(shù)如果是被廢棄掉了,并不一定說這個(gè)選項(xiàng)的特性JVM已經(jīng)不支持了,也有可能是JVM默認(rèn)是開啟了這個(gè)選項(xiàng)。

Source-File Mode

什么是Source-File Mode呢?

Source-File Mode就是指可以直接使用java命令來運(yùn)行java源代碼,而不用使用javac進(jìn)行編譯。

當(dāng)然這個(gè)只對(duì)單文件的源代碼有效。

有兩種方式使用Source-File Mode,一種是源文件后面帶.java后綴,如:

java HelloWorld.java

一種是添加參數(shù)–source version選項(xiàng):

java -source 11 HelloWorld這里的version指的是JDK版本號(hào),可以取值6,7,8,9,10,11。

如果沒有使用.java,則必須使用-source。

Source-File Mode的原理是將源代碼編譯到內(nèi)存中,然后執(zhí)行源代碼中的第一個(gè)class。

Code Heap狀態(tài)分析

我們知道JVM中的JIT編譯器會(huì)將一些熱點(diǎn)的java代碼編譯成機(jī)器碼,而這些機(jī)器碼會(huì)存儲(chǔ)在一個(gè)叫做code cache的地方。

CodeHeap就是用來生成和管理這些機(jī)器碼的類。每次存儲(chǔ)請(qǐng)求都會(huì)分配一定大小的空間,這個(gè)值是由CodeCacheSegmentSize來定義的。

當(dāng)然,為了提升效率,你可以將CodeCacheSegmentSize的大小設(shè)置為和cache line大小一致。不過這不是必須的。

Code Heap狀態(tài)分析就是分析code cache的狀態(tài)。

CodeHeap狀態(tài)分析分為兩個(gè)部分。 第一部分檢查整個(gè)CodeHeap并匯總所有認(rèn)為有用/重要的信息。 第二部分可以根據(jù)需要選的特定的命令來輸出自己需要的那部分。

我們舉幾個(gè)例子:

實(shí)時(shí)分析:

jcmd <pid> Compiler.CodeHeap_Analytics [<function>] [<granularity>]

其中function可以有下面的幾個(gè)選項(xiàng):

  • all – 列出所有的信息
  • aggregate – 檢查CodeHeap,并記住本地結(jié)構(gòu)中的數(shù)據(jù)。
  • UsedSpace – 輸出已使用的空間
  • FreeSpace – 輸出空閑的空間
  • MethodCount – 輸出method count信息
  • MethodSpace – 輸出method space信息
  • MethodAge – 輸出method age信息
  • MethodNames – 輸出name信息
  • discard – 釋放該方法的所有資源

granularity是和aggregate配合使用的,代表一個(gè)aggregate代表的存儲(chǔ)空間大小。

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)備了一個(gè)PDF,下載鏈接如下:

JDK11GC-cheatsheet.pdf

本文鏈接:http://www.flydean.com/jdk11-gc-cheatsheet/最通俗的解讀,最深刻的干貨,最簡(jiǎn)潔的教程,眾多你不知道的小技巧等你來發(fā)現(xiàn)!歡迎關(guān)注我的公眾號(hào):「程序那些事」,懂技術(shù),更懂你!

總結(jié)

以上是生活随笔為你收集整理的java导出pdf_一张PDF了解JDK11 GC调优秘籍-附PDF下载的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。