也要以说JVM启动的时候可以调整哪些参数,来进行调优。JVM 为垃圾收集器、堆大小和运行时编译器提供与平台相关的默认选择。

性能取决于堆的大小、应用程序维护的实时数据量以及可用处理器的数量和速度.。

下面是调优的一些参数 使用命令行操作的:

1:最大暂停暂停时间目标 -XX:MaxGCPauseMillis=<nnn> :垃圾收集器需要<nnn>毫秒或更短的暂停时间,垃圾收集器将调整堆大小及与其相关的其他参数。默认情况,没有最大暂停暂停时间目标。

2:吞吐量目标  -XX:GCTimeRatio=<nnn> :垃圾收集时间与应用程序时间的比率是 1 / (1 + <nnn>),另外 垃圾收集所花费的时间是年轻代和老年代收集的总时间。

3:GC日志  -XX:+PrintGCDetails 垃圾收集的诊断信息写入标准输出  -XX:+PrintGCTimeStamps 给日志添加时间戳

4:堆大小:在虚拟机初始化时,为堆保留了整个空间, -Xmx 设置保留空间的大小,也就是最大堆大小,  -Xms(初始堆大小)的值如果比保留空间的值小,则不是所有的保留空间都立即交给虚拟机,未给虚拟机的空间被标记为”虚拟“,那么堆的不同部分(老生代和新生代)可以根据需要增长到虚拟空间的极限。

5:设置老年代和新生代的比率:-XX:NewRatio=3  年轻代:老年化=1:3

6:选择垃圾收集器,也可叫作 选择GC算法

  • 串行GC XX:+UseSerialGC

  • 并行GC XX:+UseParallelGC   并行压缩是并行GC的一个功能 默认启用 关闭使用-XX:-UseParallelOldGC

  • 并发GC -XX:+UseConcMarkSweepGC启用 CMS 收集器     -XX:+UseG1GC启用 G1 收集器

7:指定GC日志文件 ‐Xloggc:gc.log

8:指定堆内存溢出时自动进行Dump  ‐XX:+HeapDumpOnOutOfMemoryError 18 ‐XX:HeapDumpPath=/usr/local/

9:指定默认的连接超时时间  ‐Dsun.net.client.defaultConnectTimeout=2000

‐Dsun.net.client.defaultReadTimeout=2000

10:指定时区  ‐Duser.timezone=GMT+08

11: 设置默认的文件编码为UTF‐8  ‐Dfile.encoding=UTF‐8

附加一个小实践:使用G1启动一个hello程序

java ‐XX:+UseG1GC ‐Xms4g ‐Xmx4g ‐Xloggc:gc.log ‐XX:+PrintGCDetails ‐XX:+PrintGCDateStamps Hello

参考:https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/toc.html

查看JVM进程号:使用命令jps , 找到进程号可以使用jstack pid 来查看线程栈

使用jmap可以查看物理内存占用情况

2---JVM启动参数有哪些?的更多相关文章

  1. NetBeansRCP-添加/修改NetBeans的JVM启动参数

    NetBeans运行的速度实在是不敢恭维.还好机器配置还可以,修改其JVM启动参数命令行,以期运行的更加顺畅. 那么如何修改NetBeans IDE的JVM参数呢? 1.到NetBeans IDE的安 ...

  2. JVM启动参数小结

    一:JVM启动参数共分为三类:         其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容:        其二是非标准参数(-X),指的是JVM底层的一些配置参数, ...

  3. 业务系统的JVM启动参数推荐

    关键业务系统的JVM启动参数推荐,原文链接请参见:http://calvin1978.blogcn.com/articles/jvmoption-2.html

  4. jvm启动参数设置 -Dfile.encoding=UTF-8 解决freemark乱码

    今天一个spring boot应用windows跑起来后页面显示乱码,加上jvm启动参数为utf-8后,页面显示正常.

  5. jvm 启动参数设置(转载)

    JVM启动参数 http://onlyor.iteye.com/blog/1722413 博客分类: java java java启动参数共分为三类其一是标准参数(-),所有的JVM实现都必须实现这些 ...

  6. Eclipse jvm启动参数在哪设置

    学习并转载自https://jingyan.baidu.com/article/624e7459653ca534e8ba5a26.html Java是一门非常受欢迎的编程语言,Java的开发人员多数使 ...

  7. JVM 启动参数,共分为3类

    JVM 启动参数,共分为3类: 类别 说明 标准参数(-) 所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 非标准参数(-X) 这些参数不是虚拟机规范规定的.因此,不是所有VM的实现(如:H ...

  8. JVM系统属性 OS环境变量 JVM启动参数

    JVM系统属性(System Properties) 1.不支持通过文件查看和设置系统属性 2.可以通过JDK自带的工具jvisulavm.exe查看 3.可以在Java程序中使用API来查看系统属性 ...

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

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

  10. Java JVM 启动参数

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

随机推荐

  1. Js实现监听input输入

    实现原理: 默认input第一个带光标,第一个输完自动跳转到第一个输入框,以此类推, 当删除某一个输入框中的值重新输入,输入完后自动跳转到下一个 代码实现: <div class="c ...

  2. ASP.NET Core连接字符串中的特殊字符如何处理?多实例如何连接?

    ASP.NET Core连接字符串中的特殊字符,如数据库密码,有时会有特殊字符,如password&1234, 如何直接使用会报连接错误,只需用单引号阔起来即可,如下'password& ...

  3. css - object-fit ie兼容

    css - object-fit ie兼容 参考资料 github 解决object-fit兼容IE浏览器实现图片自适应 demo <!-- * @createDate: 2022-08-30 ...

  4. (jmeter笔记)jmeter打印日志

    Bean Shell常用内置变量   JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下: log:写入信息到jmeber.l ...

  5. element ui 分页

    修改选中页码的样式: .el-pager .active{ color:red !important;//选中 } .el-pager .number:hover{ color:red !import ...

  6. WAP-2.1

    WAP 是一种源代码静态分析和数据挖掘工具,用于检测和纠正用 PHP 4.0 或更高版本编写的 Web 应用程序中的输入验证漏洞,且误报率较低. WAP 检测并纠正以下漏洞: SQL Injectio ...

  7. HDOJ--1010题C++

    有两点需要注意,第一点就是,题意是指在第T秒时门才打开,并不是越早到门口就能越早出去,而是只要存在指定长的路径即可以出去. 第二点,每次深搜发现答案不符都必须将点重新初始化.#include<i ...

  8. python学习笔记-简介

    python简介 python是一种简单易学,功能强大的编程语言,他有高效的高层数据结构,简单而有效的实现面向对象编程.python是一种解释性语言,在多数平台的多个领域都是理想的脚本语言,特别适用于 ...

  9. Centos使用nohup实现后台运行程序

    nohup和&的区别& : 指在后台运行 nohup : 不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断 ...

  10. react+antd upload实现图片宽高、视频宽高尺寸校验

    图片宽高校验方法: // 上传图片尺寸限制 const checkIconWH = (file: any) => { return new Promise<void>(functio ...