也要以说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. 【C学习笔记】day2-3 求10 个整数中最大值

    #include <stdio.h>#define n 10 int main() { int max=0; int a[n] = {12,15,16,546,165,654,612,23 ...

  2. (面试加分新技能) 总结11个ES2022中你可能遗漏的语法

    与许多其他编程语言一样,JavaScript 也在不断发展,每年,该语言都会通过新功能变得更强大,让开发人员编写更具表现力和简洁的代码.让我们探索 ECMAScript 2022 (ES13) 中添加 ...

  3. vue项目的两种构建工具Vue CLI和Vite

    Vue CLI官方项目搭建工具,使用的打包器是webpack,webpack使用的模块化规范是commonjs模块: Vite主要特点是开发环境启动迅速,因为是使用的ES模块,这是在现代浏览器开始原生 ...

  4. Windows右键新建.md文件

    原本创建.md文件的时候需要打开MarkDown编辑器,或者新建一个.txt文件然后修改后缀名,着实有点麻烦,本文介绍了如何在Windows操作系统中添加右键创建.md文件的方法. 环境 window ...

  5. uni-app 下载文件 预览 + 保存自定义目录

    作为使用uni-app的小白来说  尝试了好几种方法 终于得到了我想要的效果(如下) 1.点击下载按钮(文件 或者图片)  2.预览 :用户自定义选择查看的软件(图片在手机相册 文件用其他打开预览) ...

  6. laravel 导出

    常规导出xlsx  更多的是导出小数据  需要大数据导出的时候 需要临时更改内存大小  ini_set('memory_limit', '1024M');  不更改内存的情况 可以选择队列导出到服务器 ...

  7. Jmeter完整全套接口流程

    根据实际项目,编写一套完整的接口流程 项目流程介绍: 借款流程需要调用的接口,依次为: 前置校验:主要通过手机号验证该用户是存量用户,若撞库,则不允许继续操作: 用户注册:通过手机号+身份证号进行注册 ...

  8. Java集合-LinkedHashSet

    LinkedHashSet 重点: LinkedHashSet 不允许重复元素,与 HashSet的区别是:它是有序的 LinkedHashSet 底层结构是 数组table + 双向链表 [介绍] ...

  9. mysql 增加自定义函数

    查看mysql当前是否支持编写自定义 SHOW variables like '%fun%'; 开启自定义函数 set global log_bin_trust_function_creators=1 ...

  10. vue中sso登录使用VueKeycloak登录

    一,先下载vuekeycloakjs npm install @dsb-norge/vue-keycloak-js --save 二,引入 import VueKeycloakJs from '@ds ...