idea中VM options配置方式
idea中VM options配置
VM options這項(xiàng)需要我們自己填寫,我填的是VM options :
-Xms256m -Xmx256m -XX:PermSize=32M -XX:MaxPermSize=128m
每一項(xiàng)以空格隔開

參數(shù)說明
- -Xms256m:設(shè)置JVM初始堆內(nèi)存為256m。此值可以設(shè)置與-Xmx相同,以避免每次垃圾回收完成后JVM重新分配內(nèi)存。
- -Xmx256m:設(shè)置JVM最大堆內(nèi)存為256m。
- -Xss128k:設(shè)置每個(gè)線程的棧大小。JDK5.0以后每個(gè)線程棧大小為1M,之前每個(gè)線程棧大小為256K。應(yīng)當(dāng)根據(jù)應(yīng)用的線程所需內(nèi)存大小進(jìn)行調(diào)整。在相同物理內(nèi)存下,減小這個(gè)值能生成更多的線程。但是操作系統(tǒng)對一個(gè)進(jìn)程內(nèi)的線程數(shù)還是有限制的,不能無限生成,經(jīng)驗(yàn)值在3000~5000左右。需要注意的是:當(dāng)這個(gè)值被設(shè)置的較大(例如>2MB)時(shí)將會在很大程度上降低系統(tǒng)的性能。
- -Xmn2g:設(shè)置年輕代大小為2G。在整個(gè)堆內(nèi)存大小確定的情況下,增大年輕代將會減小年老代,反之亦然。此值關(guān)系到JVM垃圾回收,對系統(tǒng)性能影響較大,官方推薦配置為整個(gè)堆大小的3/8。
- -XX:NewSize=1024m:設(shè)置年輕代初始值為1024M。
- -XX:MaxNewSize=1024m:設(shè)置年輕代最大值為1024M。
- -XX:PermSize=256m:設(shè)置持久代初始值為256M。
- -XX:MaxPermSize=256m:設(shè)置持久代最大值為256M。
- -XX:NewRatio=4:設(shè)置年輕代(包括1個(gè)Eden和2個(gè)Survivor區(qū))與年老代的比值。表示年輕代比年老代為1:4。
- -XX:SurvivorRatio=4:設(shè)置年輕代中Eden區(qū)與Survivor區(qū)的比值。表示2個(gè)Survivor區(qū)(JVM堆內(nèi)存年輕代中默認(rèn)有2個(gè)大小相等的Survivor區(qū))與1個(gè)Eden區(qū)的比值為2:4,即1個(gè)Survivor區(qū)占整個(gè)年輕代大小的1/6。
- -XX:MaxTenuringThreshold=7:表示一個(gè)對象如果在Survivor區(qū)(救助空間)移動了7次還沒有被垃圾回收就進(jìn)入年老代。如果設(shè)置為0的話,則年輕代對象不經(jīng)過Survivor區(qū),直接進(jìn)入年老代,對于需要大量常駐內(nèi)存的應(yīng)用,這樣做可以提高效率。如果將此值設(shè)置為一個(gè)較大值,則年輕代對象會在Survivor區(qū)進(jìn)行多次復(fù)制,這樣可以增加對象在年輕代存活時(shí)間,增加對象在年輕代被垃圾回收的概率,減少Full GC的頻率,這樣做可以在某種程度上提高服務(wù)穩(wěn)定性。
標(biāo)準(zhǔn)參數(shù)
所有JVM都必須支持這些參數(shù)的功能,而且向后兼容;
例如:
- -client——設(shè)置JVM使用Client模式,特點(diǎn)是啟動速度比較快,但運(yùn)行時(shí)性能和內(nèi)存管理效率不高,通常用于客戶端應(yīng)用程序或開發(fā)調(diào)試;在32位環(huán)境下直接運(yùn)行Java程序默認(rèn)啟用該模式。
- -server——設(shè)置JVM使Server模式,特點(diǎn)是啟動速度比較慢,但運(yùn)行時(shí)性能和內(nèi)存管理效率很高,適用于生產(chǎn)環(huán)境。在具有64位能力的JDK環(huán)境下默認(rèn)啟用該模式。
非標(biāo)準(zhǔn)參數(shù)(-X),默認(rèn)JVM實(shí)現(xiàn)這些參數(shù)的功能,但是并不保證所有JVM實(shí)現(xiàn)都滿足,且不保證向后兼容;
非穩(wěn)定參數(shù)(-XX),此類參數(shù)各個(gè)JVM實(shí)現(xiàn)會有所不同,將來可能會不被支持,需要慎重使用;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
hadoop中實(shí)現(xiàn)java網(wǎng)絡(luò)爬蟲(示例講解)
下面小編就為大家?guī)硪黄猦adoop中實(shí)現(xiàn)java網(wǎng)絡(luò)爬蟲(示例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
使用synchronized關(guān)鍵字實(shí)現(xiàn)信號量的方法
在Java中,信號量(Semaphore)是一種常用的同步工具,它可以用來控制對共享資源的訪問數(shù)量,下面,我們將使用Synchronized關(guān)鍵字來實(shí)現(xiàn)一個(gè)簡單的信號量,我們的目標(biāo)是實(shí)現(xiàn)一個(gè)計(jì)數(shù)信號量,其中信號量的計(jì)數(shù)指示可以同時(shí)訪問某一資源的線程數(shù),需要的朋友可以參考下2024-04-04
多年Java老手總結(jié)的這幾個(gè)神仙技巧你用過嗎
Java作為一門熱門編程語言,吸引了無數(shù)程序員,如果你也想學(xué)習(xí)Java,那么這篇文章提供的小技巧,可以幫助你更好地掌握這門語言,這篇文章主要介紹了多年Java老油條總結(jié)的幾個(gè)神仙技巧,需要的朋友可以參考下2026-04-04
SpringBoot使用Sa-Token實(shí)現(xiàn)登錄認(rèn)證
本文主要介紹了SpringBoot使用Sa-Token實(shí)現(xiàn)登錄認(rèn)證,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
SpringBoot五種獲取ApplicationContext的實(shí)現(xiàn)方式
本文系統(tǒng)梳理了獲取Spring ApplicationContext的多種方式,包括創(chuàng)建工具類、實(shí)現(xiàn)ApplicationContextInitializer接口、ApplicationListener接口、啟動類配置、ApplicationContextAware接口及@Resource注解注入,提供便捷的bean獲取與容器操作方案2025-09-09
idea企業(yè)開發(fā)之新建各類型項(xiàng)目的詳細(xì)教程
這篇文章主要介紹了idea企業(yè)開發(fā)之新建各類型項(xiàng)目的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
Spring boot定時(shí)任務(wù)的原理及動態(tài)創(chuàng)建詳解
這篇文章主要給大家介紹了關(guān)于Spring boot定時(shí)任務(wù)的原理及動態(tài)創(chuàng)建的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03

