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

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

