【摘录】JAVA内存管理-有关垃圾收集的关键参数
第八章 有关垃圾收集的关键参数
一些命令行参数可以用来选择垃圾收集器,指定堆或代的大小,修改垃圾收集行为,获取垃圾收集统计数据。本章给出一些最常用的参数。有关各种各样参数更多完整的列表和详细信息可以参见第九章。注意:指定的数字可以以“m”或“M”结尾表示兆字节,以“k”或“K”结尾表示千字节,以“g”或“G”结尾表示千兆字节。
垃圾收集器的选择
| 选项 | 选择的垃圾收集器 |
|---|---|
| –XX:+UseSerialGC | Serial(串行收集器) |
| –XX:+UseParallelGC | Parallel(并行收集器) |
| –XX:+UseParallelOldGC | Parallel compacting(并行压缩收集器) |
| –XX:+UseConcMarkSweepGC | Concurrent mark–sweep (CMS) |
垃圾收集器统计
| 选项 | 描述 |
|---|---|
| –XX:+PrintGC | 每次垃圾收集时输出基本信息。 |
| –XX:+PrintGCDetails | 每次垃圾收集时输出更详细的信息。 |
| –XX:+PrintGCTimeStamps | 在每次垃圾收集事件开始输出时间戳。与–XX:+PrintGC或–XX:+PrintGCDetails一同使用。 |
堆和代的大小
| 选项 | 默认值 | 描述 |
|---|---|---|
| –Xmsn | 参见第五章 | 堆初始大小,以字节为单位。 |
| –Xmxn | 参见第五章 | 堆最大值,以字节为单位。 |
| –XX:MinHeapFreeRatio=minimum and –XX:MaxHeapFreeRatio=maximum |
40 (最小),70 (最大) | 堆空闲空间与总大小的比值范围。应用在每个代上。例如,如果最小值为30并且某个代的空闲百分比低于30%时,这个代会扩展以保持30%的空闲空间。相似的,如果最大值是60并且空闲百分比超过60%,代会收缩以保持只有60%的空闲空间。 |
| –XX:NewSize=n | 依赖平台 | 年轻代的初始大小,以字节为单位。 |
| –XX:NewRatio=n | 客户端2,服务器8 | 年轻代和年老代的比例。例如,如果n是3,比例是1:3,Eden和生还者区的加和是年轻代和年老代大小总和的1/4。 |
| –XX:SurvivorRatio=n | 32 | 每个生还者区与Eden区的比例。例如,如果n是7,每个生还者区是年轻代的1/9(不是1/8,因为有2个生还者区)。 |
| –XX:MaxPermSize=n | 依赖平台 | 持久代的最大值。 |
并行和并行压缩收集器的选项
| 选项 | 默认值 | 描述 |
|---|---|---|
| –XX:ParallelGCThreads=n | CPU的个数 | 垃圾收集的线程数。 |
| –XX:MaxGCPauseMillis=n | 无 | 期望垃圾收集器的暂停时间小于等于n。 |
| –XX:GCTimeRatio=n | 99 | 设置垃圾收集时间占总时间的目标为 1/(1+n)。 |
CMS收集器的选项
| 选项 | 默认值 | 描述 |
|---|---|---|
| –XX:+CMSIncrementalMode | 禁用 | 启用增量模式。并行阶段是增量的,并行阶段周期性暂停以释放处理器给应用程序。 |
| –XX:+CMSIncrementalPacing | 禁用 | 是否允许CMS处理器基于应用程序行为自动放弃之前的处理器。 |
| –XX:ParallelGCThreads=n | CPU的个数 | 年轻代并行收集和年老代并行收集部分的线程数。 |
【摘录】JAVA内存管理-有关垃圾收集的关键参数的更多相关文章
- 【摘录】JAVA内存管理-JVM垃圾收集机制
很多公司都有自己的JVM实现,被Oracle收购的sun公司开发的JVM实现名为HotSpot.这一实现是我们最常用到的. 还有哪些JVM实现呢?比较有名的有Oracle之前收购的BEA公司(就是以前 ...
- 【摘录】JAVA内存管理-评估垃圾收集性能的工具
第七章 评估垃圾收集性能的工具 各种各样的诊断和监视工具可以用来评估垃圾收集性能.本章简要概述他们中的几个.可以通过第九章中的“Tools and Troubleshooting”链接获得更多的信息. ...
- 揭开Java内存管理的面纱
前言 相对于C.C++这些高性能语言,Java有着让此类程序员羡慕的功能:内存自动管理.似乎这样,Java程序员不用再关心内存,也不用去了解相关知识.但结果真的是这样吗?特别对于我们这种Android ...
- Java内存管理笔记
java内存管理机制 在java中,内存管理由JVM完全负责,java中的"垃圾回收器"负责自动回收无用对象占据的内存资源,这样可以大大减少程序猿在内存管理上花费的时间,可以更集中 ...
- Java 内存管理
java 内存管理机制 JAVA 内存管理总结 java 是如何管理内存的 Java 的内存管理就是对象的分配和释放问题.(两部分) 分配 :内存的分配是由程序完成的,程序员需要通过关键字 new 为 ...
- 简单的例子 关于Java内存管理的讲解
我想做的是,逐行读取文件,然后用该行的电影名去获取电影信息.因为源文件较大,readlines()不能完全读取所有电影名,所以我们逐行读取. 就这段代码,我想要在位置二处使用base64,然后结果呢? ...
- java内存管理机制
JAVA 内存管理总结 1. java是如何管理内存的 Java的内存管理就是对象的分配和释放问题.(两部分) 分配 :内存的分配是由程序完成的,程序员需要通过关键字new 为每个对象申请内存空间 ( ...
- java内存管理(堆、栈、方法区)
java内存管理 简介 首先我们要了解我们为什么要学习java虚拟机的内存管理,不是java的gc垃圾回收机制都帮我们释放了内存了吗?但是在写程序的过程中却也往往因为不懂内存管理而造成了一些不容易察觉 ...
- Java内存管理及对Java对象管理
Java内存管理及对Java对象管理 1Java内存管理 1.1Java中的堆和栈 通常来说,人们会将Java内存氛围栈内存(Stack)和堆内存(Heap). 栈内存用来保存基本类型的变量和对象的引 ...
随机推荐
- (转)RabbitMQ学习之exchange总结
http://blog.csdn.net/zhu_tianwei/article/details/53969674 前面介绍了几类exchange的作用,这个总结一下: direct:消息会被推送至绑 ...
- paramiko模块学习笔记
SSHClient 基于用户名密码连接 import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ss ...
- Win7系统无法记住网络访问的凭据怎么办?
访问内网其他IP时已经打勾记住我的凭据了,但是注销或者重启Win7系统之后,又得重新输入用户名跟密码怎么办? 下面就为大家介绍一下如何让Win7系统记住网络访问的凭据. 以上问题还会引发,重启后无法正 ...
- bzoj 1121: [POI2008]激光发射器SZK 思维_结论
Description 多边形相邻边垂直,边长为整数,边平行坐标轴.要在多边形的点上放一些激光发射器和接收器.满足下列要求: 1发射器和接收器不能放置在同一点: 2发射器发出激光可以沿壁反射,最终到达 ...
- 路飞学城Python-Day141
什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 爬虫的目的就是为了模拟浏览器进行网络数据访问 抓取数据的两种方式 ...
- Project Euler 11 Largest product in a grid
题意:在这个20×20方阵中,四个在同一方向(从下至上.从上至下.从右至左.从左至右或者对角线)上相邻的数的乘积最大是多少? 思路:暴力去枚举以 ( x , y ) 为中心拓展的四个方向 /***** ...
- Python-基础-day3
基础数据类型 1.什么是数据类型? 我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1 ...
- 《黑白团团队》第七次作业:团队项目设计完善&编码
项目 内容 作业课程地址 任课教师首页链接 作业要求 团队项目 填写团队名称 黑白团团队 填写具体目标 认真负责,完成项目 任务1:团队软件项目设计完善 Github仓库上传<软件设计方案说明书 ...
- 循环时自动打开url
'systemutil.Run "C:\Program Files (x86)\HP\QuickTest Professional\samples\flight\app\flight4a.e ...
- xml00
<?xml verson="1.0" encoding="ISO-8859-1"?> xml声明<note> <to>jon ...