国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Java】JDK8 jvm參數(shù)配置及說明

這篇具有很好參考價值的文章主要介紹了【Java】JDK8 jvm參數(shù)配置及說明。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

參數(shù)

說明

1.堆內(nèi)存參數(shù)設(shè)置

-Xms

-XX:InitialHeapSize=n

設(shè)置堆的初始值

指令1:-Xms2g
指令2:-XX:InitialHeapSize=2048m

-Xmx

-XX:MaxHeapSize=n

設(shè)置堆區(qū)最大值
指令1:-Xmx2g
指令2: -XX:MaxHeapSize=2048m
-XX:NewSize=n 設(shè)置年輕代大小

-Xss

-XX:ThreadStackSize=n

每個線程堆棧最大值

指令1:-Xss256k
指令2:-XX:ThreadStackSize=256k
注意:

默認堆棧大小為1M,應(yīng)該128K就夠用,大的堆棧建議256K,棧設(shè)置太大,會導致線程創(chuàng)建減少。棧設(shè)置小,會導致深入不夠,深度的遞歸會導致棧溢出。

-Xmn

-XX:MaxNewSize=n

新生代內(nèi)存配置
指令1:-Xmn512m
指令2:-XX:MaxNewSize=512m
-XX:SurvivorRatio=n

2個survivor區(qū)和Eden區(qū)大小比率
指令:-XX:SurvivorRatio=8(默認)

年輕代中Eden區(qū)與兩個Survivor區(qū)的比值.注意Survivor區(qū)有兩個,S區(qū)和Eden區(qū)在新生代比例為1:8,兩個S區(qū)2:8

-XX:NewRatio=n

新生代和老年代的占比
-XX:NewRatio=2(默認)

表示新生代:老年代 = 1:2?即老年代占整個堆的2/3;默認值=2

如果-Xms==-Xmx,且設(shè)置了-Xmn的情況下,不用設(shè)置此參數(shù)。

-Duser.timezone=GMT+08 指定時區(qū)
‐Dfile.encoding=UTF‐8 指定默認的文件編碼

2.垃圾回收器設(shè)置

-XX:+PrintGC

簡單打印GC日志
-XX:+PrintGCDetails 詳細打印GC日志
-XX:+PrintHeapAtGC 打印GC前后詳細的堆棧信息
-XX:+PrintGCTimeStamps GC發(fā)生時,額外輸出GC發(fā)生的時間,該輸出時間為虛擬機啟動后的時間偏移量
-XX:+PrintGCDateStamps GC發(fā)生時,帶時區(qū)的日期打印
-XX:+PrintGCApplicationConcurrentTime 打印每次垃圾回收前,應(yīng)用程序未中斷執(zhí)行時間
-XX:+PrintGCApplicationStoppedTime 打印應(yīng)用程序由于GC而產(chǎn)生的停頓時間
-XX:+PrintReferenceGC 跟蹤系統(tǒng)內(nèi)的軟引用,弱引用,虛引用和Finallize隊列

2.1 GC回收日志打印

-Xloggc:log/gc.log

指定gc日志輸出的文件路徑。

JDK8開始支持使用%p,%t等占位符來指定GC輸出文件。分別表示進程pid和啟動時間戳。

例如:?

-Xloggc:/data/gclog/gc.log 固定路徑名稱生成

-Xloggc:/data/gclog/gc-%t.log? 根據(jù)時間生成

-Xloggc:/data/gclog/gc-%p.log? 根據(jù)進程pid生成

-XX:+UseGCLogFileRotation 滾動生成日志
日志文件達到一定大小后,生成另一個文件,須配置-Xloggc
-XX:NumberOfGCLogFiles=n -XX:NumberOfGCLogFiles=4 滾動GC日志文件數(shù),默認0,不滾動,需配置UseGCLogFileRotation,設(shè)置為0表示僅通過jcmd命令觸發(fā)
-XX:GCLogFileSize=n -XX:GCLogFileSize=100k GC文件滾動大小,需配置UseGCLogFileRotation,設(shè)置為0表示僅通過jcmd命令觸發(fā)

2.2 堆內(nèi)存溢出配置

-XX:+HeapDumpOnOutOfMemoryError

內(nèi)存溢出時導出整個堆信息,讓JVM遇到OOM異常時能輸出堆內(nèi)信息,并通過(-XX:+HeapDumpPath)參數(shù)設(shè)置堆內(nèi)存溢出快照輸出的文件地址

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath=./log/dump/

-XX:HeapDumpPath 指定導出堆的存放路徑
-XX:OnOutOfMemoryError=“”

利用這個參數(shù),我們可以在系統(tǒng)OOM后,自定義一個腳本,可以用來發(fā)送郵件告警信息,可以用來重啟系統(tǒng)等等。

-XX:OnOutOfMemoryError="/opt/local/bin/alert.sh"

-XX:+HeapDumpBeforeFullGC 實現(xiàn)在Full GC前dump
-XX:HeapDumpPath=/logs/設(shè)置Dump保存的路徑
-XX:+HeapDumpAfterFullGC

實現(xiàn)在Full GC后dump

-XX:HeapDumpPath=/logs/設(shè)置Dump保存的路徑

2.3 垃圾回收器配置

-XX:+UseSerialGC 允許使用串行垃圾收集器。對于不需要垃圾收集的任何特殊功能的小型和簡單應(yīng)用程序,這通常是最佳選擇。默認情況下,禁用此選項,并根據(jù)計算機的配置和JVM的類型自動選擇收集器。
-XX:+UseParallelGC

允許使用并行清除垃圾收集器(也稱為吞吐量收集器),通過利用多個處理器來提高應(yīng)用程序的性能。

默認情況下,禁用此選項,并根據(jù)計算機的配置和JVM的類型自動選擇收集器。如果已啟用,則會-XX:+UseParallelOldGC自動啟用該選項,除非您明確禁用它。

-XX:+UseParalledlOldGC 允許將并行垃圾收集器用于完整的GC。默認情況下,禁用此選項。啟用它會自動啟用該-XX:+UseParallelGC選項。
-XX:+UseConcMarkSweepGC

允許為老年代使用CMS垃圾收集器。Oracle建議您在spam(-XX:+UseParallelGC)垃圾收集器無法滿足應(yīng)用程序延遲要求時使用CMS垃圾收集器。G1垃圾收集器(-XX:+UseG1GC)是另一種選擇。

默認情況下,禁用此選項,并根據(jù)計算機的配置和JVM的類型自動選擇收集器。啟用此選項后,將-XX:+UseParNewGC自動設(shè)置該選項,您不應(yīng)禁用該選項,因為JDK 8中已棄用以下選項組合:-XX:+UseConcMarkSweepGC -XX:-UseParNewGC

-XX:+UseParNewGC 允許在年輕代中使用并行線程進行收集。默認情況下,禁用此選項。設(shè)置-XX:+UseConcMarkSweepGC選項時會自動啟用它。使用-XX:+UseParNewGC不帶選項-XX:+UseConcMarkSweepGC的選擇是在JDK 8棄用
-XX:+UseG1GC 允許使用垃圾優(yōu)先(G1)垃圾收集器。它是一個服務(wù)器式垃圾收集器,針對具有大量RAM的多處理器機器。它以高概率滿足GC暫停時間目標,同時保持良好的吞吐量。G1收集器推薦用于需要大堆(大小約為6 GB或更大)且GC延遲要求有限的應(yīng)用(穩(wěn)定且可預測的暫停時間低于0.5秒)
-XX:ParallelGCThreads=n

GC并行執(zhí)行線程數(shù)

-XX:ParallelGCThreads=16

3.輔助指令(查看或修改正在運行的JVM 某項配置)

jinfo -flag 參數(shù) pid

查看HeapDumpOnOutOfMemoryError 配置是否開啟

jinfo -flag HeapDumpOnOutOfMemoryError 10001

修改HeapDumpOnOutOfMemoryError 配置(-關(guān)閉 +開啟)

jinfo -flag +HeapDumpOnOutOfMemoryError 10001

-XX:+PrintFlagsFinal

查看jvm參數(shù)配置

-XX:+PrintFlagsFinal |grep GC 查看與GC相關(guān)參數(shù)配置

-XX:+PrintCommandLineFlags

打印已經(jīng)被用戶或者當前虛擬機設(shè)置過的參數(shù)

-XX:+PrintCommandLineFlags -version 查看GC堆的初始大小以及GC收集器類型

4.JDK8的JVM啟動參數(shù)默認配置

  • -Xms2g -Xmx2g (按不同容器,4G及以下建議為50%,6G以上,建議設(shè)置為70%)
  • -XX:MetaspaceSize=128m
  • -XX:MaxMetaspaceSize=512m
  • -Xss256k
  • -XX:+UseG1GC
  • -XX:MaxGCPauseMillis=200
  • -XX:AutoBoxCacheMax=20000
  • -XX:+HeapDumpOnOutOfMemoryError (當JVM發(fā)生OOM時,自動生成DUMP文件)
  • -XX:HeapDumpPath=/data/logs/gc/
  • -XX:ErrorFile=/data/logs/gc/hs_err_%p.log (當JVM發(fā)生崩潰時,自動生成錯誤日志)
  • -XX:+PrintGCApplicationStoppedTime
  • -XX:+PrintGCDetails
  • -XX:+PrintGCDateStamps
  • -Xloggc:/data/logs/gc/gc-ePrint-service.log

4.禁止和廢棄參數(shù)選項

-Xincgc

啟用增量垃圾收集。此選項在JDK 8中已棄用,無需替換。

-Xrun?libname

加載指定的調(diào)試/分析庫。此選項已被該選項取代-agentlib。

-XX:CMSIncrementalDutyCycle =?百分比

設(shè)置允許并發(fā)收集器運行的次要集合之間的時間百分比(0到100)。在棄用選項后,此選項在JDK 8中已棄用,沒有替換-XX:+CMSIncrementalMode

-XX:CMSIncrementalDutyCycleMin =?百分比

設(shè)置次要集合之間的時間百分比(0到100),它-XX:+CMSIncrementalPacing是啟用時占空比的下限。在棄用選項后,此選項在JDK 8中已棄用,沒有替換-XX:+CMSIncrementalMode。

-XX:+ CMSIncrementalMode

啟用CMS收集器的增量模式。此選項在JDK 8中已棄用,沒有替換,以及其他選項CMSIncremental

-XX:CMSIncrementalOffset =?百分比

設(shè)置增量模式占空比在次要集合之間的時間段內(nèi)向右移動的時間百分比(0到100)。在棄用選項后,此選項在JDK 8中已棄用,沒有替換-XX:+CMSIncrementalMode。

-XX:+ CMSIncrementalPacing

根據(jù)JVM運行時收集的統(tǒng)計信息,啟用增量模式占空比的自動調(diào)整。在棄用選項后,此選項在JDK 8中已棄用,沒有替換-XX:+CMSIncrementalMode

-XX:CMSIncrementalSafetyFactor =?百分比

設(shè)置計算占空比時用于添加保守性的時間百分比(0到100)。在棄用選項后,此選項在JDK 8中已棄用,沒有替換-XX:+CMSIncrementalMode

-XX:CMSInitiatingPermOccupancyFraction =?百分比

設(shè)置啟動GC的永久生成占用率(0到100)的百分比。此選項在JDK 8中已棄用,無需替換。

-XX:MaxPermSize =?size

設(shè)置最大永久生成空間大?。ㄒ宰止?jié)為單位)。此選項在JDK 8中已棄用,并由該-XX:MaxMetaspaceSize選項取代。

-XX:PermSize =?size

設(shè)置分配給永久生成的空間(以字節(jié)為單位),如果超出則會觸發(fā)垃圾回收。此選項在JDK 8中已棄用,并被該-XX:MetaspaceSize選項取代。

-XX:+ UseSplitVerifier

允許拆分驗證過程。默認情況下,此選項在先前版本中已啟用,驗證分為兩個階段:類型引用(由編譯器執(zhí)行)和類型檢查(由JVM運行時執(zhí)行)。此選項在JDK 8中已棄用,現(xiàn)在默認情況下會對驗證進行拆分,而無法將其禁用。

-XX:+ UseStringCache

啟用常用分配字符串的緩存。此選項已從JDK 8中刪除,無需替換。文章來源地址http://www.zghlxwxcb.cn/news/detail-772765.html

到了這里,關(guān)于【Java】JDK8 jvm參數(shù)配置及說明的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • JDK8和JDK17安裝切換,IDEA配置多個版本JDK

    JDK8和JDK17安裝切換,IDEA配置多個版本JDK

    JAVA之父高斯林推薦我們用JDK17,請盡快離開JDK8。JDK17 LTS在每個維度上都是一個巨大的飛躍: 在Java 17正式發(fā)布之前,Java開發(fā)框架Spring率先在官博宣布,Spring Framework 6和Spring Boot 3計劃在2022年第四季度實現(xiàn)總體可用性的高端基線: Java 17+(來自 Spring Framework 5.3.x 線中的 Java 8-17)

    2023年04月27日
    瀏覽(27)
  • Kafka-配置Kerberos安全認證(JDK8、JDK11)

    Kafka-配置Kerberos安全認證(JDK8、JDK11)

    一、相關(guān)配置 1、JAAS 配置文件 2、keytab 文件(kafka.service.keytab) 從 Kerberos 服務(wù)器上拷貝到目標機器 或 找運維人員要一份 3、Kerberos 配置文件(krb5.conf) krb5文件參數(shù)說明:krb5.conf(5) 從 Kerberos 服務(wù)器上拷貝到目標機器 或 找運維人員要一份 Tip: JDK11版本 sun.security.krb5.Config 類

    2024年02月15日
    瀏覽(26)
  • JDK8與JDK11:Java兩個主要版本的比較

    在Java的世界里,JDK8和JDK11無疑是兩個里程碑式的版本。它們在功能、性能和易用性上都進行了許多改進,使得Java開發(fā)者能夠更高效、更輕松地開發(fā)出高質(zhì)量的程序。在這篇文章中,我們將對這兩個版本進行詳細的比較,以幫助你更好地了解它們之間的差異。 1. 默認垃圾回收

    2024年03月10日
    瀏覽(25)
  • JDK8 和 JDK11 Java 兩個主要版本的比較

    Java 是一門廣泛應(yīng)用于企業(yè)級應(yīng)用和跨平臺開發(fā)的編程語言。隨著時間的推移,Java 不斷演變和發(fā)展,版本之間有著許多新的功能和改進。本篇博客將重點關(guān)注 JDK 8 和 JDK 11 之間的區(qū)別,分析它們的新特性、性能改進和其他方面的差異。 一、性能改進: JDK 11 對性能進行了優(yōu)化

    2024年02月09日
    瀏覽(24)
  • Mac下安裝并配置jdk8環(huán)境

    Mac下安裝并配置jdk8環(huán)境

    JDK(Java Development Kit) 是 Java 語言的軟件開發(fā)工具包(SDK)。 安裝JDK后,會在電腦中同時安裝:java的運行環(huán)境jre 和 開發(fā)環(huán)境jdk。 安裝 JDK時,不建議安裝太舊或太新的版本。目前的最新版本是jdk9。目前jdk8比較穩(wěn)定,推薦開發(fā)時下載安裝jdk8. 需要登陸oracle賬號,國內(nèi)下載較慢。(

    2024年02月20日
    瀏覽(34)
  • JDK8安裝與配置環(huán)境變量,全圖文

    JDK8安裝與配置環(huán)境變量,全圖文

    JDK(Java Development Kit)是Java語言的軟件開發(fā)工具包,主要用于移動設(shè)備、嵌入式設(shè)備上的Java應(yīng)用程序。JDK是整個java開發(fā)的核心,它包含了JAVA的運行環(huán)境(JRE)和JAVA工具。沒有JDK的話,無法編譯Java程序(指java源碼.java文件)。 http://www.oracle.com/technetwork/java/javase/downloads/inde

    2024年02月04日
    瀏覽(28)
  • Java jdk8生成隨機數(shù)

    目錄 Jdk8生成隨機數(shù) Jdk8以前 在Java 8中,可以使用ThreadLocalRandom類來生成隨機數(shù)。相比于早期的Random類,ThreadLocalRandom類可以更好地支持多線程應(yīng)用,性能也更優(yōu)。下面是使用ThreadLocalRandom類生成隨機數(shù)的幾種方法: 生成一個0到n之間的隨機整數(shù)(不包含n): 生成一個范圍在

    2024年02月12日
    瀏覽(13)
  • MacBook蘋果電腦安裝JDK8、JDK11教程,配置環(huán)境變量 + 快速切換JDK版本

    https://www.oracle.com/java/technologies/downloads/archive/ 本文主要為在MacBook蘋果電腦系統(tǒng)下安裝JDK及環(huán)境變量配置。 本文分為四步: 在Oracle官網(wǎng)下載JDK 安裝JDk 配置環(huán)境變量 快速切換 JDK8、JDK11和JDK21是Java開發(fā)工具包的不同版本,而JavaSE、JavaEE和JavaME是Java平臺的不同配置和規(guī)范,用于

    2024年04月28日
    瀏覽(24)
  • 【Java基礎(chǔ)】JDK8.0(JDK1.8)版本的下載與安裝

    【Java基礎(chǔ)】JDK8.0(JDK1.8)版本的下載與安裝

    JDK(Java SE Development Kits)是Java程序員使用的開發(fā)環(huán)境,包含JRE和開發(fā)工具集。 JRE(Java Runtime Environment) :是Java程序的運行時環(huán)境,包含JVM和運行時所需要的核心類庫。 官網(wǎng)地址:https://www.oracle.com/cn/java/technologies/javase/javase8u211-later-archive-downloads.html 鏈接:https://pan.baidu.com/

    2024年02月13日
    瀏覽(18)
  • 從JDK8到JDK14:阿里巴巴面試題探索Java的演進之路!

    從JDK8到JDK14:阿里巴巴面試題探索Java的演進之路!

    嗨,各位小伙伴們!近期,阿里巴巴的面試題上線啦!話題聚焦在Java開發(fā)中最新的JDK特性。作為我們?nèi)粘i_發(fā)的利器,JDK的更新對于我們的工作有著極其重要的影響。今天,小米將帶領(lǐng)大家一一揭秘JDK8至JDK14的新特性,讓我們一起進入Java的新世界吧! JDK8的到來帶來了Java開

    2024年04月12日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包