【JVM的相关参数和调优】

文章目录

  • JVM 调优的参数类型
    • 一、标配参数
    • 二、X参数
    • 三、XX参数
  • JVM 调优的常用参数


JVM 调优的参数类型

一、标配参数

这类此参数在jdk的各个版本之间很少会变化,基本不改变

  1. java -version,查看当前电脑上的jdk的版本信息

在这里插入图片描述

  1. java -help,查看java命令的各种选项和参数

在这里插入图片描述

  1. java -showversion,相当于上述两者结合

在这里插入图片描述
4. jps,查看后台运行的 java 进程

public class Test {public static void main(String[] args) throws InterruptedException {// 让该程序一致在后台Thread.sleep(Integer.MAX_VALUE);}
}

在这里插入图片描述
Test 的进程 id 为 29636

5. jinfo,通过进程 id 查看正在运行的 java 程序的参数信息

jinfo -flag 具体参数(XX参数) java进程编号(-flag,是一个进程号同时指定要查看的一个参数)
在这里插入图片描述
jinfo -flags java进程编号(-flags,是一个进程号所有的参数)
在这里插入图片描述


二、X参数

  1. java -Xint -vesion,解释执行模式

解释执行命令会告诉java虚拟机使用解释执行模式来执行程序。在解释执行模式下,Java程序的代码将逐行被解释器翻译成机器指令并执行。这种模式通常会导致程序执行速度较慢,但它可以在不同的平台上运行代码,因为不需要事先将代码编译成机器代码。

  1. java -Xcomp -version,第一次使用就编译成本地代码

编译执行命令会告诉java虚拟机在第一次执行程序时将代码编译成本地机器代码。这种模式下,Java程序的代码会被即时编译器翻译成机器指令,并保存下来以备下次执行使用。这样,在后续执行时,程序的执行速度会比解释执行模式下更快,因为代码已经被编译成机器代码。

  1. java - Xmixed -version,混合模式(JVM默认采用的模式)

混合模式命令会告诉java虚拟机在运行时根据程序的运行情况来选择解释执行或即时编译执行。在混合模式下,虚拟机会根据代码的热度来判断是否将其编译成机器代码。热度通常是通过代码的执行频率衡量的。因此,混合模式可以充分利用即时编译的性能优势,同时又能适应代码的动态性。

在这里插入图片描述


三、XX参数

1. Boolean 类型
公式:–XX:+或-某个属性(+表示开启,-表示关闭)
例如:-XX:+PrintGCDetails

2. K/V键值对类型

公式:-XX:某个Key=Value
例如:
-XX:MetaspaceSize=128m
-XX:MaxTenuringThreshold=15

K/V 类型中常常会有许多的简写形式
如:-Xms 等价于 -XX:InitialHeapSize=,. -Xmx 等价于 -XX:MaxHeapSize=


JVM 调优的常用参数

1. -Xms 等价于 -XX:InitialHeapSize=,初始大小内存,默认为物理内存的 1/ 64

2. -Xmx 等价于 -XX:MaxHeapSize=,最大分配内存,默认为物理内存的1 / 4

3. -Xss 等价于 -XX:ThreadStackSize=,设置单个线程栈的大小,一般默认为 512K~1024K(具体跟JVM所在的平台有关)

在这里插入图片描述

Window下 ThreadStackSize=0, 意思是使用的是默认值

4. -Xmn,设置年轻代的大小(只有简写,没有全称)

5. -XX:MetaspaceSize,设置元空间大小(元空间并不在虚拟机中,而是使用本地内存,因此会受本地内存大小的限制,OOM异常中就有java.lang.OutOfMemoryError: Metaspace)

6. -XX:+PrintGCDetails,输出GC收集日志的详细信息

在这里插入图片描述

GC 和 Full GC
在这里插入图片描述

7. -XX:SurvivorRatio,设置Survivo所占的比例,但总的新生代大小不变
Eden:S0:s1 = 8 : 1 : 1,即默认-XX:SurvivorRatio=8
Eden:S0:s1 = 4 : 1 : 1,即设置-XX:SurvivorRatio=4

8. -XX:NewRatio,配置新生代和老年代的比例
默认:-XX:NewRatio=2,新生代:老年代=1:2,新生代占整个堆的 1/3
假如:-XX:NewRatio=4,新生代:老年代=1:4,新生代占整个堆的 1/5

9. -XX:MaxTenuringThreshold,设置年轻代对象的最大年龄(即在Survivor中的复制轮数),超过这个次数要么进入老年代要么回收,范围[0, 15]

默认值为 15

在这里插入图片描述

10. -XX:+PrintFlagsInitial(查看 JVM 的默认配置,即 XX:K/V) 和 -XX:+PrintFlagsFinal(查看JVM当前的配置)

K = V,没有被修改过
K := V,被修改过

在这里插入图片描述

12. -XX:+PrintCommandLineFlags -version(查看默认的垃圾回收器的方式)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/616408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓(雷电)模拟器清除屏幕密码[亲测可用]

1、设置磁盘可写 启动模拟器,然后在模拟器的设置界面,设置磁盘共享为可写入,重启模拟器,如下图: 2、找到模拟器目录 返回桌面,右键模拟器图标,打开文件所在目录,如下图&#xff1a…

Casper Network (CSPR)2024 年愿景:通过投资促进增长

Casper Network (CSPR)是行业领先的 Layer-1 区块链网络之一,通过推出了一系列值得关注的技术改进和倡议,已经为 2024 年做好了准备。 在过去的一年里,Casper Network (CSPR)不断取得里程碑式的进展,例如推…

Paddle模型转ONNX

深度学习模型在硬件加速器上的部署常常要用到ONNX(Open Neural Network Exchange,开放神经网络交换)格式,也可以通过ONNX实现不同AI框架(如Pytorch、TensorFlow、Caffe2、PaddlePaddle等)之间的模型转换。 …

Transformer详解【学习笔记】

文章目录 1、Transformer绪论2、Encoders和Decoder2.1 Encoders2.1.1 输入部分2.1.2 多头注意力机制2.1.3 残差2.1.4 LayNorm(Layer Normalization)2.1.5 前馈神经网路 2.2 Decoder2.2.1 多头注意力机制2.2.2 交互层 1、Transformer绪论 Transformer在做…

为什么企业容易陷入“自嗨式营销”,媒介盒子分析

互联网时代,各类信息都传播的非常快,同时信息技术的成熟也让许多企业可以监测广告效果,比如曝光、互动、转化等都可以通过数据体现,然而很多企业在营销过程中却发现,大部分的钱、精力、人力等都被浪费了。出现这种情况…

Git的简单使用说明

Git入门教程 git的最主要的作用:版本控制,协助开发 一.版本控制分类 ​​ 1.本地版本控制 ​​ 2.集中版本控制 ​​ 所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不…

制作 Kali 可启动 USB 驱动器

Kali USB驱动器,轻松安全,获取最新镜像,开始强大的安全测试! Kali 可启动 USB 驱动器的优点: 不会更改主机系统的硬盘驱动器或已安装的操作系统,并且要返回正常操作,您只需删除“Kali Live”U…

小手也能用的高性能鼠标,自定义空间还挺高,雷柏VT9Pro mini上手

今年搭载PAW3395传感器的电竞鼠标很受欢迎,雷柏就出了不少型号,满足各种喜好的玩家选择,像是近期新出的搭载3395高定版的VT9Pro和VT9Pro mini,就在轻量化的基础上,满足了各种手型的玩家的使用需要,而且价格…

Whale 帷幄创始人叶生晅:AIGC 时代,营销的范式变了丨未来 AI 谈

「未来 AI 谈」是「Marteker 营销技术官」联合「Digital Frontier 首席数字官」共同发起的一档对话栏目,旨在探讨生成式 AI 的崛起对泛营销技术和营销自动化带来的影响,以期帮助全行业探索 AIGC 时代的新营销之路。 本期嘉宾:「Whale 帷幄」创…

Linux中DNS域名解析服务及实验

一、DNS介绍 1、DNS 是域名系统,应用层协议,是互联网的一项服务,是将域名转换成网络可以识别的IP地址,再通过IP地址访问主机。这种由文字组成的名称更容易记忆。 DNS是“域名系统"的英文缩写。它作为将域名和IP地址相互映…

如何提高匹配的精确度(多次学习)

我们工业自动化中,视觉软件匹配,都是学习一次,比如找到轮廓,旋转360度,也就是有360个轮廓,然后到图像中去找任意角度的目标。 这样的学习并不能一而概括全。 所以,我借鉴ai的方法,…

C#超市管理系统源码

C#超市管理系统源码 功能齐全的超市管理系统,专门美化过UI 请先附加数据库,否则无法进入系统 默认拥有最高权限账户为经理,密码为admin 压缩包内有使用说明

Cdd诊断数据控中的zz rc yy

如上图所示的Cdd Candela Diagnostic Descriptions 诊断数据库会话定义中有许多的标识符缩写,如zz rc LL xx 等 其实这些字母没有意义,它们只是唯一地标识对话框中的组合组件。

snmp协议配置

引言 SNMP(Simple Network Management Protocol)是一种网络管理协议,用于管理和监控网络设备、操作系统和应用程序。它提供了一组用于检索和修改网络设备配置、监视设备状态和性能的标准化方法。 SNMP 是一个客户端-服务器协议,…

C++ 学习笔记之运算符重载+案例

目录 一、C 运算符重载 二、定义一个成员函数或全局函数 三、计算时间 1.计算时间差 2.时间加减 四、一个运算符重载实例 一、C 运算符重载 是一种特性,它允许程序员重新定义已有的运算符的行为,以适应自定义类型的操作。通过运算符重载&#xff0…

电商新趋势:解析养号的必要性及海外云手机运用攻略

在电商领域,什么最为关键?答案无疑是流量!然而,如何以较低成本获取大量流量成为了许多电商从业者头疼的问题。虽然直接投放广告是一种方式,但在内卷的情况下效果越来越难以令人满意,高昂的广告费用也原来越…

Python如何对csv文件进行操作

csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格: 就可以存储为csv文件,文件内容是: No.,Name,Age,Score1,mayi,18,99 2,jack,21,89 3,tom,25,95 4,rain,19,80 假设上述csv文件保存…

10 款最适合阅读和注释 PDF 文件的工具

简介 PDF 或便携式文档格式是 Adob​​e 在 20 世纪 90 年代创建的一种文件类型,作为轻松创建和分发文档的解决方案。如今,PDF 在世界各地的教育、企业、政府甚至互联网等行业中得到广泛应用。PDF 具有广泛的功能,包括多页文档、注释、超链接…

文件管理小技巧:如何高效整理多种格式的图片,图片分类的方法

随着数字时代的到来,每天都会处理到大量的图片,从个人照片到工作相关的图像资料。如何高效地整理多种格式的图片,常常让人感到困扰。下面看下云炫文件管理器如何对图片分类的方法。 jpg图片、png图片、tiff图片未归类前的缩略图。 jpg图片、…

【已解决】RAR压缩文件可以转换为ZIP格式吗?

想把RAR压缩文件转换成ZIP格式文件,除了可以把RAR压缩包解压后,再重新压缩成ZIP格式,还可以利用WinRAR解压缩软件的“格式转换功能”来实现。不清楚的小伙伴,一起来看看如何操作吧。 首先,通过WinRAR解压缩软件打开RA…