当前位置:网站首页>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。
边栏推荐
- 软链接和硬链接画图,以及代码,一级目录的解释,重定向,创建文件,删除文件,创建目录,删除目录,cp、mv命令的使用
- 什么样的人不适合入行编程?你真的适合学习编程吗?
- Unity版本升级问题总结
- TCP与UDP协议的区别,以及TCP的三次握手和四次挥手
- ES6-箭头函数
- VRchat_udon脚本介绍:傻瓜式教程教你如何实现VRchat地图的功能
- cenos7安装cmake-3.22.2
- 【Latex】TexLive+VScode+SumatraPDF 配置LaTex编辑环境
- The solution to the IDEA console not being able to enter information
- 【Rhapsody学习笔记】1:Hello World
猜你喜欢
ES6-02-let和const关键字
MySQL free installation download and configuration tutorial
网盘程序 ZFile安装
crontab timing operation
Detailed explanation of mysql transaction principle
变更管理与 DevOps —— 二者同时进行吗?
ES6-03-解构赋值
链表理论基础
【Latex】TexLive+VScode+SumatraPDF 配置LaTex编辑环境
DingTalk Enterprise Internal-H5 Micro Application Development
随机推荐
Openssl一键自签证书
多线程(1)
定义一个类,super的使用,私有属性
IDEA概述和安装及调试
DDNS搭建
Pytorch study notes 10 - detailed explanation of convolutional neural network and application of multi-classification task of mnist dataset
Unity转微信小游戏与JS交互
【内网开发日记】用websocket手搓一个聊天软件
UR3机器人运动学分析之正运动学分析
2021-09-30
Where can I find the private files set by myself?
Unity版本升级问题总结
顶级程序员都是怎么做的?
crontab timing operation
Webrtc从理论到实践二: 架构
Debian 搭建 WireGuard 服务端
WIN10,配置adb环境
数据库/表的基本操作
可下载视频可下载图片的函数
小型网站组建(ENSP)