java虚拟机05(Java虚拟机的参数)
(1)-Xms20M
表示设置堆容量的最小值为20M,必须以M为单位
(2)-Xmx20M
表示设置堆容量的最大值为20M,必须以M为单位。将-Xmx和-Xms设置为一样可以避免堆自动扩展。大的项目-Xmx和-Xms一般都要设置到10G、20G甚至还要高
(3)-verbose:gc
表示输出虚拟机中GC的详细情况
(4)-Xss128k
表示可以设置虚拟机栈的大小为128k
(5)-Xoss128k
表示设置本地方法栈的大小为128k。不过HotSpot并不区分虚拟机栈和本地方法栈,因此对于HotSpot来说这个参数是无效的
(6)-XX:PermSize=10M
表示JVM初始分配的永久代的容量,必须以M为单位
(7)-XX:MaxPermSize=10M
表示JVM允许分配的永久代的最大容量,必须以M为单位,大部分情况下这个参数默认为64M
(8)-Xnoclassgc
表示关闭JVM对类的垃圾回收
(9)-XX:+TraceClassLoading
表示查看类的加载信息
(10)-XX:+TraceClassUnLoading
表示查看类的卸载信息
(11)-XX:NewRatio=4
表示设置年轻代:老年代的大小比值为1:4,这意味着年轻代占整个堆的1/5
For example, setting -XX:NewRatio=3 means that the ratio between the old and young generation is 1:3, the combined size of eden and the survivor spaces will be fourth of the heap.
英文后半句说的很明白了,年轻代占四分之一的堆空间。
也就是说-XX:NewRatio=n,表示的是
年轻代:老年代= 1:n
或者
老年代:年轻代 = n:1
说不定一会又忘了,可以记作:NewRatio的值是的倒数才是年轻比老年代的值,因为老外数学差。
(12)-XX:SurvivorRatio=8
表示设置2个Survivor区:1个Eden区的大小比值为2:8,这意味着Survivor区占整个年轻代的1/5,这个参数默认为8
For example, -XX:SurvivorRatio=6 sets the ratio between each survivor space and eden to be 1:6, each survivor space will be one eighth of the young generation.
通过理解整句话,可以知道 -XX:SurvivorRatio=n,表示的是:
survivor 1 : eden = 1: 6
survivor 2 : eden = 1: 6
survivor 1+2 : eden = 2: 6
survivor:yong = 2:8
说不定一会又忘了,可以记作:SurvivorRatio的值是的倒数才是一个survivor比Eden的值,因为老外数学差。
(13)-Xmn20M
表示设置年轻代的大小为20M
(14)-XX:+HeapDumpOnOutOfMemoryError
表示可以让虚拟机在出现内存溢出异常时Dump出当前的堆内存转储快照
(15)-XX:+UseG1GC
表示让JVM使用G1垃圾收集器
(16)-XX:+PrintGCDetails
表示在控制台上打印出GC具体细节
(17)-XX:+PrintGC
表示在控制台上打印出GC信息
(18)-XX:PretenureSizeThreshold=3145728
表示对象大于3145728(3M)时直接进入老年代分配,这里只能以字节作为单位
(19)-XX:MaxTenuringThreshold=1
表示对象年龄大于1,自动进入老年代
(20)-XX:CompileThreshold=1000
表示一个方法被调用1000次之后,会被认为是热点代码,并触发即时编译
(21)-XX:+PrintHeapAtGC
表示可以看到每次GC前后堆内存布局
(22)-XX:+PrintTLAB
表示可以看到TLAB的使用情况
(23)-XX:+UseSpining
开启自旋锁
(24)-XX:PreBlockSpin
更改自旋锁的自旋次数,使用这个参数必须先开启自旋锁
java虚拟机05(Java虚拟机的参数)的更多相关文章
- 067 01 Android 零基础入门 01 Java基础语法 08 Java方法 05 数组作为方法参数
067 01 Android 零基础入门 01 Java基础语法 08 Java方法 05 数组作为方法参数 本文知识点:数组作为方法参数 说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进 ...
- Java笔记 #05# Java Native Interface
参考资料:http://www.ntu.edu.sg/home/ehchua/programming/java/javanativeinterface.html(很详细) 看jdk源代码时,经常会看到 ...
- Java虚拟机05.1(各种环境下jvm的参数如何调整?)
cmd下 eclipse下 tomcat下 cmd下指定jvm参数 在cmd下执行Java程序可以通过如下方式之地需要配置的Java 虚拟机参数: 这里只是指定了对初始为2M,新生代为1M,堆最大值为 ...
- Java面试题(三)--虚拟机
1 内存结构 1.简述一下JVM的内存结构?(高频) JVM在执行Java程序时,会把它管理的内存划分为若干个的区域,每个区域都有自己的用途和创建销毁时间.如下图所示,可以分为两大部分,线程私有区和共 ...
- 《深入理解Java虚拟机》Java内存区域与内存溢出异常
注:“蓝色加粗字体”为书本原语 先来一张JVM运行时数据区域图,再接下来一一分析各区域功能: 程序计数器 程序计数器(program Counter Register)是一块较小的内存空间,它可以 ...
- 【Java】实战Java虚拟机之五“开启JIT编译”
今天开始实战Java虚拟机之五“开启JIT编译” 总计有5个系列 实战Java虚拟机之一“堆溢出处理” 实战Java虚拟机之二“虚拟机的工作模式” 实战Java虚拟机之三“G1的新生代GC” 实战Ja ...
- 实战Java虚拟机之二“虚拟机的工作模式”
今天开始实战Java虚拟机之二:“虚拟机的工作模式”. 总计有5个系列 实战Java虚拟机之一“堆溢出处理” 实战Java虚拟机之二“虚拟机的工作模式” 实战Java虚拟机之三“G1的新生代GC” 实 ...
- java虚拟机和Dalvik虚拟机的区别
java虚拟机和Dalvik虚拟机的区别: java虚拟机Dalvik虚拟机 java虚拟机基于栈. 基于栈的机器必须使用指令来载入和操作栈上数据,所需指令更多更多dalvik虚拟机是基于寄存器的 j ...
- Android(java)学习笔记156:Java虚拟机和Dalvik虚拟机的区别
Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野.它对内存的高效使用,和在低速CPU上表现出的高性能,确实令 ...
随机推荐
- 如何搭建OWASP测试靶机
刚刚入门的新手都需要一个可以用来练习的环境,但是dvwa的搭建需要相关环境,所以这里推荐大家在虚拟机上搭建owasp靶机,里面集成了dvwa靶机. https://sourceforge.net/pr ...
- 图像分割利用KMeans生成灰度图
import numpy as np import PIL.Image as image from sklearn.cluster import KMeans def loadData(filePat ...
- Java基础 -4.6
循环嵌套 乘法口诀表 public static void main(String[] args) { for(int x =1;x<10;x++) { for(int y=1;y<=x; ...
- Redis 事务在 SpringBoot 中的应用 (io.lettuce.core.RedisCommandExecutionException: ERR EXEC without MULTI)
我们在 SpringBoot 中使用 Redis 时,会引入如下的 redis starter <dependency> <groupId>org.springframewor ...
- IP地址规划
IP地址(Internet Protocol Address),缩写为IP Adress,是一种在Internet上的给主机统一编址的地址格式,也称为网络协议(IP协议)地址.它为互联网上的每一个网络 ...
- js对数字的处理:取整、四舍五入、数字与字符串的转换
取整.四舍五入 向下取整Math.floor() 向上取整Math.ceil() 四舍五入Math.round()) 保留有效数位n.toFixed() 产生大于等于0小于1的随机数Math.rand ...
- 获取Webshell方法总结
一.CMS获取Webshell方法 搜索CMS网站程序名称 eg:phpcms拿webshell.wordpress后台拿webshell 二.非CMS获取Webshell方法 2.1数据库备份获取W ...
- 更新Android Studio,提示后直接点更新即可。gradle 两种更新方法,我用的第二种:手动添加gradle
直接更新即可. 更新完毕后,随即会让你更新gradle,但是会一直更新一直更新...... 解决方法: 第一种方法: 手动下载Android Studio 对应的 gradle版本,然后设置一下即可. ...
- 编写跨平台Java程序注意事项
使用Java语言编写应用程序最大的优点在于“一次编译,处处运行”,然而这并不是说所有的Java程序都具有跨平台的特性,事实上,相当一部分的Java程序是不能在别的操作系统上正确运行的,那么如何才能编写 ...
- XPath 和 CSS
1.XPath XPath 即 XML 路径语言 (XML Path Language),他是一种用来确定 xml 文档中某部分位置的语言. xml文档(html 属于 xml)是由一系列节点构成的树 ...