jvm 常用概念(未整理完)
来源:互联网 发布:vb语言和java 编辑:程序博客网 时间:2024/06/06 01:49
一 堆大小设置
JVM 中最大堆大小有三方面限制:
a. 操作系统的数据模型(32-bt还是64-bit)限制;
b. 系统的可用虚拟内存限制;
c. 系统的可用物理内存限制
典型设置:
1. java -Xmx2048m -Xms2048m -Xmn1g -Xss128k
- xms 指定程序的初始化内存大小
- xmx 指定程序占用的最大内存
Xmn 设置年轻代大小
整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
Xss 设置每个线程的堆栈大小
JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右
2. java -Xmx2048m -Xms2048m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m -XX:MaxTenuringThreshold=0
XX:NewRatio 设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)
设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5
XX:SurvivorRatio 设置年轻代中Eden区与Survivor区的大小比值
设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6
XX:MaxPermSize 设置持久代大小
XX:MaxTenuringThreshold 设置垃圾最大年龄
三 辅助信息
- -XX:+PrintGC
输出形式:
[GC 118250K->113543K(130112K), 0.0094143 secs]
[Full GC 121376K->10414K(130112K), 0.0650971 secs] - -XX:+PrintGCDetails
输出形式:[GC [DefNew: 8614K->781K(9088K), 0.0123035 secs] 118250K->113543K(130112K), 0.0124633 secs]
[GC [DefNew: 8614K->8614K(9088K), 0.0000665 secs][Tenured: 112761K->10414K(121024K), 0.0433488 secs] 121376K->10414K(130112K), 0.0436268 secs] - -XX:+PrintGCTimeStamps
- XX:+PrintGC:PrintGCTimeStamps
可与-XX:+PrintGC -XX:+PrintGCDetails混合使用
输出形式:11.851: [GC 98328K->93620K(130112K), 0.0082960 secs] -XX:+PrintTLAB
查看TLAB空间的使用情况XX:+PrintTenuringDistribution
Desired survivor size 1048576 bytes, new threshold 7 (max 15)
new threshold 7即标识新的存活
- jvm 常用概念(未整理完)
- JVM相关-未整理
- Java常用基础概念整理(一)
- 未整理的常用形容词
- 开发技术分类(未整理完...)
- Android介绍(未整理完...)
- MATLAB中常用函数和概念整理(长期补充....)
- java常用jar包(未整理)
- C#技巧(未整理)
- 注册表键值(未整理)
- MFC ui(未整理)
- oracle文档(未整理)
- 文章积累(未整理)
- 预处理器(未整理)
- android 知识点(未整理)
- 工作小记(未整理)
- jvm调优(一) 概念
- jvm调优(二)概念
- 关于hibernate 更新后立即查询数据,取到的是更新之前的数据的问题
- 玩命牛的成长记录(十八)——搭台
- 学会运用++和--,培养计算思维
- c++记录程序运行时间
- 二叉树的递归遍历
- jvm 常用概念(未整理完)
- Android Activity四种启动模式
- InputStream InputStreamReader BufferedReader详解
- (10.1.3.1)做好扁平化设计-视觉篇
- Android 关于线程创建
- C#调用C++类(以COM组件的形式)
- C语言中的日期函数
- jQuery mobile Data 属性
- Bootstrap3学习(二、排版)class="text-left"