博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jvm配置
阅读量:5237 次
发布时间:2019-06-14

本文共 1041 字,大约阅读时间需要 3 分钟。

堆区即为通过new的方式创建的对象(类实例)所占用的内存空间;非堆区即为代码、常量、外部访问(如文件访问流所占资源)等 

1、-Xms :表示java虚拟机堆区内存初始内存分配的大小,通常为操作系统可用内存的1/64大小即可,但仍需按照实际情况进行分配。有可能真的按照这样的一个规则分配时,设计出的软件还没有能够运行得起来就挂了。24g的话分配394mb

    2、-Xmx: 表示java虚拟机堆区内存可被分配的最大上限,通常为操作系统可用内存的1/4大小。但是开发过程中,通常会将 -Xms 与 -Xmx两个参数的配置相同的值,其目的是为了能够在java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小而浪费资源。24gb的话分配6144mb

 

进行更加精细的分配还可以对堆区内存进一步的细化,那就要用到下面的三个参数了-XX:newSize、-XX:MaxnewSize、-Xmn

新生代、中生代、老生代。

 

新生代大部分要回收,采用Copying算法,快!

 

老年代 大部分不需要回收,采用Mark-Compact算法

-XXSurvivorRatio=3:代表Eden:Survivor = 3    根据Generation-Collection算法(目前大部分JVM采用的算法),一般根据对象的生存周期将堆内存分为若干不同的区域,

 一般情况将新生代分为Eden ,两块Survivor;    计算Survivor大小, Eden:Survivor = 3,总大小为5120,3x+x+x=5120  x=1024

1、-XX:newSize:表示新生代初始内存的大小,应该小于 -Xms的值;

2、-XX:MaxnewSize:表示新生代可被分配的内存的最大上限;当然这个值应该小于 -Xmx的值;
3、-Xmn:至于这个参数则是对 -XX:newSize、-XX:MaxnewSize两个参数的同时配置,也就是说如果通过-Xmn来配置新生代的内存大小,那么-XX:newSize = -XX:MaxnewSize = -Xmn,虽然会很方便,但需要注意的是这个参数是在JDK1.4版本以后才使用的。

 

1、-XX:PermSize:表示非堆区初始内存分配大小,其缩写为permanent size(持久化内存)

2、-XX:MaxPermSize:表示对非堆区分配的内存的最大上限。

 

转载于:https://www.cnblogs.com/luojiabao/p/11184659.html

你可能感兴趣的文章
hadoop 及hbase zookeeper 经常出现问题
查看>>
【原】PNG的使用技巧
查看>>
android studio 使用SVN 锁定文件,防止别人修改(基于Android studio 1.4 )
查看>>
4412 uboot启动分析
查看>>
熟用TableView
查看>>
IO模型《六》IO模型比较分析
查看>>
Android 博客园客户端 (七)登录功能
查看>>
PHP动态页面 生产静态页 方法二
查看>>
NSOperation 代码,阐述NSOperation一般功能和重要功能
查看>>
androidstudio 2.3.3 jni过程汇总(2):2、使用so文件
查看>>
第二篇:使用Spark对MovieLens的特征进行提取
查看>>
WPF 依赖项属性[DependencyProperty]Text的绑定方式
查看>>
在Visual Studio中使用VueJS时,不可以用 v-bind 的简写 : 及 v-on的简写 @
查看>>
并查集--学习详解
查看>>
[App Store Connect帮助]八、维护您的 App(6)使某个先前版本不可下载
查看>>
[Swift]LeetCode419. 甲板上的战舰 | Battleships in a Board
查看>>
《将博客搬至CSDN》
查看>>
JavaEE笔记(二)
查看>>
Java大数——a^b + b^a
查看>>
zcmu 1041
查看>>