当前位置:网站首页>11.0 堆参数调优入门之堆参数调整
11.0 堆参数调优入门之堆参数调整
2022-07-31 05:19:00 【想要飞翔的企鹅】

java8和java7只有最后的元空间与永久代的区别,因没有jdk8图片,那就以java7为例。
-Xms 代表初始值 s 可以理解为start 初始
-Xmx 代表最大值 x 可以理解为max 最大
-Xmn 代表 新生代 n 可以理解为new 新生


这里是程序代码是计算jvm中堆的初始内存和最大内存。初始内存默认为物理内存的 1/64,最大内存默认为物理内存的1/4。
但是在实际生产项目中,初始内存与最大内存是一样大的,原因:避免机器与jvm争抢内存,理论值与峰值忽高忽低。
public static void main(String[] args) {
long xMx = Runtime.getRuntime().maxMemory();
long xMs = Runtime.getRuntime().totalMemory();
System.out.println("Xmx 最大堆内存" + xMx/ (double)1024 /1024 + "MB");
System.out.println("Xmx 开始内存" + xMs/ (double)1024 /1024 + "MB");
}
在idea上配置JVM的初始堆内存和最大堆内存

在红框中填写上配置参数,随着idea版本的不同,有的将这个地方隐藏起来了,需要我们调出来,调出来的步骤同样在下方。

将下图打上对勾就可以出来啦,如果没有配置参数,该框可能会再次隐藏起来。
配置参数如下
-Xms1024m -Xmx1024 -XX:+PrintGCDetails

运行代码

将 PSYoungGen 与 ParOldGen 内存相加正好等于堆内存981.5,这说明堆内存物理上是新生代+老年代构成的。
逻辑上是新生代 + 老年代 + 元空间构成的。
将堆内存配置为10M,如下图
运行代码
public static void main(String[] args) {
String str = "abcd";
while(true) {
str += str + new Random().nextInt(8888888) + new Random().nextInt(99999999);
}
}
这时会报 OutOfMemoryError,这就是堆内存溢出错误,从下图也可以看到GC垃圾回收的整个过程,先是轻GC,然后在重GC,当老年代已经满了,无法在进行GC的时候,就会报出OutOfMemoryError。
边栏推荐
猜你喜欢

企业级 DevOps 究竟是什么?

C语言静态变量static

【Rhapsody学习笔记】3:Dishwasher

ES6-模块

十分钟教你玩转分支语句!!!!!小白速进,新手福利!!

在 AWS 上从零开始设置 Incredibuild 构建系统

衡量 DevOps 成功与否的重要度量指标

Four common ways of POST to submit data

The solution to the IDEA console not being able to enter information

The content of the wangeditor editor is transferred to the background server for storage
随机推荐
软链接和硬链接画图,以及代码,一级目录的解释,重定向,创建文件,删除文件,创建目录,删除目录,cp、mv命令的使用
C语言知识点(二)
WIN10,配置adb环境
vs2022 xlua 集成第三方库编译报错Generator Visual Studio 15 2017 could not find any instance of Visual Studio.
Four common ways of POST to submit data
VRchat_udon脚本介绍:傻瓜式教程教你如何实现VRchat地图的功能
十分钟教你玩转分支语句!!!!!小白速进,新手福利!!
MySQL官网8.0.17 安装教程(适合离线安装)
力扣151. 颠倒字符串中的单词
ES6-箭头函数
变更管理与 DevOps —— 二者同时进行吗?
5G的用途和工作原理
概率论相关笔记
螺旋矩阵Ⅱ
Websocket协议解析与QT代码示例
TCP与UDP协议的区别,以及TCP的三次握手和四次挥手
IDEA overview and installation and debugging
面试总爱问的一个问题,你为什么离职上一份工作?
什么样的人不适合入行编程?你真的适合学习编程吗?
Pytorch study notes 7 - processing input of multi-dimensional features