三大类选项:
1. 标准选项: 功能是很稳定的,所有的标准选项都是以-开头,比如-version, -server等。
2. X选项:以-X开头,这类选项的功能还是很稳定,但官方的说法是它们的行为可能会在后续版本中改变,也有可能不在后续版本中提供了。
3. XX选项:属于实验性,主要是给JVM开发者用于开发和调试JVM的,在后续的版本中行为有可能会变化。

Hotspot JVM两种类型:server和client。

区别:

Server VM的初始堆空间会大一些,默认使用的时并行垃圾回收器。

Client VM初始堆空间会小一些,使用串行的垃圾回收器,它的目标是为了让JVM的启动速度更快。

JVM在启动的时候会根据硬件和操作系统会自动选择使用Server还是Client类型的JVM

#1、设置分配的JVM堆内存大小

java -Xms128m -Xmx2g     =》初始128M,最大2G

如果堆的初始值和最大值不一样的话,JVM会根据程序的运行情况,自动调整堆的大小,这可能会影响到一些效率。针对服务端程序,一般是把堆的最小值和最大值设置为一样来避免堆扩展和收缩对性能的影响。

#2、监控堆内存溢出错误,并打印堆快照

java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof   =》开启堆内存溢出错误记录功能,并将快照打印至指定目录

#3、当发生OOM的时候,去执行某个脚本

-XX:OnOutOfMemoryError 用来指定一个可行性程序或者脚本的路径,当发生OOM的时候,去执行这个脚本。

$ java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof -XX:OnOutOfMemoryError ="sh ~/cleanup.sh" MyApp

#4、设置分配的永久代内存大小

永久代在堆内存中是一块独立的区域,它包含了所有 JVM 加载的类的对象表示;

这里设置的永久代大小并不会被包括在使用#1 设置的堆内存大小中。

java -XX:PermSize=128m -XX:MaxPermSize=256m   =》初始128M,最大256M

调节新生代的目标是:1)避免对象过早地被移到了老生代 2)也要避免需要长期存活的对象在新生代呆的时间过长,这会提高MinorGC发生的频率以及增加单次MinorGC的时间。

#5、设置分配的新生代内存大小

新生代是#1分配的内存的一部分,新生代的空间大小不能大于老生代的大小

-XX:NewSize and -XX:MaxNewSize

一般设置为- Xmx/2

#6、设置老生代和新生代大小的比例

-XX:NewRatio

比如-XX:NewRatio=2表示1/3的Heap是新生代,2/3的Heap是老生代。使用这个选项的好处是新生代的大小也能随着Heap的变化而变化。

#7、设置新生代中Eden和Survivor空间大小的比例

-XX:SurvivorRatio

需要注意的是有两个Survivor。

比如-XX:SurvivorRatio=8表示Eden区域在新生代的8/10,两个Survivor分别占1/10。调节Survivor空间的时候也注意要折中,如果Survivor空间小的话,那么很有可能在一次MinorGC的时候Survivor空间就满了,从而对象就被移到了老生代;如果Survivor空间大的话,那么Eden区域就小了,从而导致MinorGC的发生得更频繁。

#8、把GC日志写入到一个文件中去

-Xloggc:<file>

java有用的启动参数的更多相关文章

  1. 【java】java获取JVM启动参数 System.getProperty

    java获取JVM启动参数 System.getProperty取 -D后的key即可 public class Test { public static void main(String[] arg ...

  2. java spring-boot 服务器启动参数设置

    java -jar -Xms5866m -Xmx5866m -Xss256k -Xloggc:/home/work/spring-boot/logs/gc-%t.log -XX:+UseGCLogFi ...

  3. java虚拟机启动参数分类详解

    官方文档见: http://docs.sun.com/source/819-0084/pt_tuningjava.html java启动参数共分为三类:其一是标准参数(-),所有的JVM实现都必须实现 ...

  4. java虚拟机启动参数整理

    java启动参数 共分为三类其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容:其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不 ...

  5. JAVA启动参数整理[转]

    java启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足, ...

  6. Java启动参数及调优

    java启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容:其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且 ...

  7. JAVA启动参数整理

    http://blog.csdn.net/turkeyzhou/article/details/7619472 java启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的 ...

  8. Java JVM启动参数

    转载于:https://www.cnblogs.com/w-wfy/p/6415856.html java启动参数共分为三类其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容 ...

  9. Java JVM 启动参数

    JVM 启动参数 java -Xmx4096m // 设置JVM最大可用内存为4096m. -Xms4096m // 设置JVM促使内存为4096m.此值可以设置与-Xmx相同,以避免每次垃圾回收完成 ...

随机推荐

  1. linux下启动、停止tomcat,杀死tomcat进程

    1.打开终端 cd /java/tomcat 2.执行 bin/startup.sh #启动tomcat bin/shutdown.sh #停止tomcat tail -f logs/catalina ...

  2. mysqlbinlog flashback 使用最佳实践

    mysqlbinlog限制 该软件利用binlog中记录了操作前的数据镜像和操作后的数据镜像.有如下限制 1)binlog_format=row 2)必须打开binlog 3)只支持insert.up ...

  3. POJ_1088_(dp)(记忆化搜索)

    滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 95792   Accepted: 36322 Description ...

  4. Unity中播放带有alpha通道格式为Mp4的视频

    问题: Unity中实现播放透明的MP4视频时出现黑点 解决办法:    使用Unity自带的shader去除黑点 1:shader代码如下所示 Shader "Unlit/NewUnlit ...

  5. 关于mybatis返回值resultType为空的问题

    假设数据库中一个user表 此时只有id为1的数据,当我们查询id为2的年龄时的时候返回值为null 但是在mybatis中预定义UserMapper.xml中 <select id=" ...

  6. LeetCode_18 4Sum

    Given an array nums of n integers and an integer target, are there elements a, b, c, and d in nums s ...

  7. CF 429B B.Working out (四角dp)

    题意: 两个人一个从左上角一个从左下角分别开始走分别走向右下角和右上角,(矩阵每个格子有数)问到达终点后可以得到的最大数是多少,并且条件是他们两个相遇的时候那个点的数不能算 思路: 首先这道题如果暴力 ...

  8. HDU - 4803 - Poor Warehouse Keeper (思维)

    题意: 给出x,y两个值分别代表x个物品,总价为y 有两种变化: 1.使总价+1,数量不变 2.数量+1,总价跟着变化 (y = y + y / x) 思路: 给出目标x,y,计算最少变化次使数量变化 ...

  9. static private 与 final 的用法总结

    1.static表示静态.他是属于类的.可以在本身类里直接调用,或在其它类里用类名.方法名调用.不加static表示是实例的方法,必须用实例来调用.在本类里也一样,必须用实例调用 2.private是 ...

  10. swing之单选框和复选框

    import java.awt.Container; import java.awt.GridLayout; import javax.swing.*; public class num_1v ext ...