jvm常用参数配置

6e9426a2a3014756b9f064d52eef1b75.jpg一、 常用参数

 

  -Xms 

  JVM启动时申请的初始Heap值,默认为操作系统物理内存的1/64但小于1G。默认当空余堆内存大于70%时,JVM会减小heap的大小到-Xms指定的大小,可通过-XX:MaxHeapFreeRation=来指定这个比列。Server端JVM最好将-Xms和-Xmx设为相同值,避免每次垃圾回收完成后JVM重新分配内存;开发测试机JVM可以保留默认值。(例如:-Xms4g)

 

  -Xmx 

  JVM可申请的最大Heap值,默认值为物理内存的1/4但小于1G,默认当空余堆内存小于40%时,JVM会增大Heap到-Xmx指定的大小,可通过-XX:MinHeapFreeRation=来指定这个比列。最佳设值应该视物理内存大小及计算机内其他内存开销而定。(例如:-Xmx4g)

 

  -Xmn 

  Java Heap Young区大小。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小(相对于HotSpot 类型的虚拟机来说)。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。(例如:-Xmn2g)

 

  程序新创建的对象都是从年轻代分配内存,年轻代由Eden Space和两块相同大小的SurvivorSpace(通常又称S0和S1或From和To)构成,可通过-Xmn参数来指定年轻代的大小,也可以通过-XX:SurvivorRation来调整Eden Space及SurvivorSpace的大小。

 

老年代用于存放经过多次新生代GC仍然存活的对象,例如缓存对象,新建的对象也有可能直接进入老年代,主要有两种情况:1、大对象,可通过启动参数设置-XX:PretenureSizeThreshold=1024(单位为字节,默认为0)来代表超过多大时就不在新生代分配,而是直接在老年代分配。2、大的数组对象,且数组中无引用外部对象。老年代所占的内存大小为-Xmx对应的值减去-Xmn对应的值。如果在堆中没有内存完成实例分配,并且堆也无法再扩展时,将会抛出OutOfMemoryError异常。

 

 -Xss 

  Java每个线程的Stack大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。根据应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。(例如:-Xss1024K)

 

  -XX:PermSize

  持久代(方法区)的初始内存大小。(例如:-XX:PermSize=64m)

 

  -XX:MaxPermSize

  持久代(方法区)的最大内存大小。(例如:-XX:MaxPermSize=512m)

 

  -XX:+UseSerialGC

  串行(SerialGC)是jvm的默认GC方式,一般适用于小型应用和单处理器,算法比较简单,GC效率也较高,但可能会给应用带来停顿。

 

  -XX:+UseParallelGC

  并行(ParallelGC)是指多个线程并行执行GC,一般适用于多处理器系统中,可以提高GC的效率,但算法复杂,系统消耗较大。(配合使用:-XX:ParallelGCThreads=8,并行收集器的线程数,此值最好配置与处理器数目相等)

 

  -XX:+UseParNewGC

  设置年轻代为并行收集,JKD5.0以上,JVM会根据系统配置自行设置,所以无需设置此值。

 

  -XX:+UseParallelOldGC

  设置年老代为并行收集,JKD6.0出现的参数选项。

 

  -XX:+UseConcMarkSweepGC

  并发(ConcMarkSweepGC)是指GC运行时,对应用程序运行几乎没有影响(也会造成停顿,不过很小而已),GC和app两者的线程在并发执行,这样可以最大限度不影响app的运行。

 

  -XX:+UseCMSCompactAtFullCollection

  在Full GC的时候,对老年代进行压缩整理。因为CMS是不会移动内存的,因此非常容易产生内存碎片。因此增加这个参数就可以在FullGC后对内存进行压缩整理,消除内存碎片。当然这个操作也有一定缺点,就是会增加CPU开销与GC时间,所以可以通过-XX:CMSFullGCsBeforeCompaction=3 这个参数来控制多少次Full GC以后进行一次碎片整理。

 

  -XX:+CMSInitiatingOccupancyFraction=80

  代表老年代使用空间达到80%后,就进行Full GC。CMS收集器在进行垃圾收集时,和应用程序一起工作,所以,不能等到老年代几乎完全被填满了再进行收集,这样会影响并发的应用线程的空间使用,从而再次触发不必要的Full GC。

 

  -XX:+MaxTenuringThreshold=10

  垃圾的最大年龄,代表对象在Survivor区经过10次复制以后才进入老年代。如果设置为0,则年轻代对象不经过Survivor区,直接进入老年代。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

torch3d mented_sort.cuh(338): error: invalid combination of type specifiers

安装pytorch3d时, mented_sort.cuh(338): error: invalid combination of type specifiers cuda自带的cub编译报错: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.8/include\cub/device/dispatch/dispatch_segmented_sort.cuh(338): erro…

加盟户用光伏赚钱吗?

光伏发电是一个新兴的投资领域,其中所蕴含的财富商机是非常多的,并且大多可靠效益显著,让无数创业投资者看到了生财的希望。 一、什么是户用光伏? 户用光伏,顾名思义,是在居民区安装的光伏发电系统。它利用太阳能电池板将光能转化为电能&…

TikTok矩阵系统的功能展示:深入解析与源代码分享!

今天我来和大家说说TikTok矩阵系统,在当今数字化时代,社交媒体平台已成为人们获取信息、交流思想和娱乐放松的重要渠道,其中,TikTok作为一款全球知名的短视频社交平台,凭借其独特的创意内容和强大的算法推荐系统&#…

数据分析案例-社交媒体情绪数据集可视化分析(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

NFC智能家电解决方案国产NFC远距离读卡芯片DP1363F

智能家电工作原理 用户只需打开手机NFC功能,并把手机靠近同样具有NFC功能的电器设备,轻触一下,便能与家电快速自动配对,进而通过手机直接控制此家电设备。 物联网(IoT)是一个连接日常物品和互联网的系统,它…

跨境电商与支付介绍

1、跨境电商定义和分类; 2、国际贸易清结算; 3、跨境支付; 1、跨境电商定义和分类 跨境电商业务简单说就是指不同国家地域的主体通过电子商务进行交易的一种业务模式。同传统的电商不同,交易双方属于不同的国家。因此&#xff0…

2024年3月2日(星期六)骑行香杆箐

2024年3月2日 (星期六)骑行香杆箐,早8:30到9:00, 郊野公园后门集合,9:30准时出发【因迟到者,骑行速度快者,可自行追赶偶遇。】 偶遇地点:郊野公园后门集合 ,家住东,南,北…

ES8.1.3配置冷热分离

业务背景 数据每天3亿条数据入库,需要同时满足三年以上数据的查询,服务器集群分为固态和机械两种,要求将近期数据查询尽可能提速,同时久远数据也可查 解决方案 利用ES新版本的Index Lifecycle Policies进行冷热数据配置 先在el…

《TCP/IP详解 卷一》第9章 广播和本地组播

目录 9.1 引言 9.2 广播 9.2.1 使用广播地址 9.2.2 发送广播数据报 9.3 组播 9.3.1 将组播IP地址转换为组播MAC地址 9.3.2 例子 9.3.3 发送组播数据报 9.3.4 接收组播数据报 9.3.5 主机地址过滤 9.4 IGMP协议和MLD协议 9.4.1 组成员的IGMP和MLD处理 9.4.2 组播路由…

opencascade c#例程解析

1.编译 将msvc.bat文件拖入vs2022的x64 native tools&#xff0c;即可 2.about.xaml <Windowxmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"x:Class"IE_WPF_WinForms…

GPU版PyTorch安装

本文章记录了配置CUDA11.3Pytorch1.12.0的全过程&#xff0c;以备之后配置新的环境。 一、先导内容 在深度学习中&#xff0c;我们常常要对图像数据进行处理和计算&#xff0c;而处理器CPU因为需要处理的事情多&#xff0c;并不能满足我们对图像处理和计算速度的要求&#xff…

Linux编程 2.2 文件和目录-文件类型

Linux中的七种文件和七种宏 普通文件&#xff08;regular file&#xff09;“-” S_ISREG() &#xff1a;实际的内容写入到硬盘中目录文件&#xff08;directory file&#xff09;“d” S_ISDIR() &#xff1a;路径&#xff0…

如何在 Linux 上使用 dmesg 命令

文章目录 1. Overview2.ring buffer怎样工作&#xff1f;3.dmesg命令4.移除sudo需求5. 强制彩色输出6.使用人性化的时间戳7.使用dmesg的人性化可读时间戳8.观察实时event9.检索最后10条消息10.搜索特定术语11.使用Log Levels12.使用Facility Categories13.Combining Facility a…

MasterAlign智能穿戴视觉应用软件说明书

​ ​随着智能穿戴设备的普及&#xff0c;生产过程中的质量检测成为了一个重要环节。MasterAlign视觉应用软件作为一款高效、精准的视觉检测软件&#xff0c;在智能穿戴设备生产过程中起到了至关重要的作用。本篇文章将详细介绍MasterAlign视觉应用软件的使用说明&#xff0…

卷积神经网络介绍

卷积神经网络(Convolutional Neural Networks&#xff0c;CNN) 网络的组件&#xff1a;卷积层&#xff0c;池化层&#xff0c;激活层和全连接层。 CNN主要由以下层构造而成&#xff1a; 卷积层&#xff1a;Convolutional layer&#xff08;CONV&#xff09;池化层&#xff1a…

C++十大经典算法案例

文章目录 1. **排序算法**&#xff1a;2. **搜索算法**&#xff1a;3. **图算法**&#xff1a;4. **动态规划**&#xff1a;5. **贪心算法**&#xff1a;6. **树与图算法**&#xff1a;7. **字符串处理算法**&#xff1a;8. **位运算算法**&#xff1a;9. **数学相关算法**&…

Jvm之内存泄漏

1 内存溢出 1.1 概念 java.lang.OutOfMemoryError&#xff0c;是指程序在申请内存时&#xff0c;没有足够的内存空间供其使用&#xff0c;出现OutOfMemoryError。产生该错误的原因主要包括&#xff1a;JVM内存过小。程序不严密&#xff0c;产生了过多的垃圾。 程序体现: 内…

C语言:字符函数 字符串函数 内存函数

C语言&#xff1a;字符函数 & 字符串函数 & 内存函数 字符函数字符分类函数字符转换函数tolowertoupper 字符串函数strlenstrcpystrcatstrcmpstrstrstrtok 内存函数memcpymemmovememsetmemcmp 字符函数 顾名思义&#xff0c;字符函数就是作用于字符的函数&#xff0c;…

搜索算法(算法竞赛、蓝桥杯)--双向DFS+二分查找

1、B站视频链接&#xff1a;B26 双向DFS 送礼物_哔哩哔哩_bilibili #include <bits/stdc.h> using namespace std; int n,m; int g[46];//存储所有物品的质量 int w[1<<23];//存储所有能凑出来的重量 int ans,cnt;//w的个数是cnt//搜索第u个数&#xff0c;和为s; …

揭示预处理中的秘密!(二)

目录 ​编辑 1. #运算符 2. ##运算符 3. 命名约定 4. #undef 5. 命令行定义 6. 条件编译 7. 头文件的被包含的方式 8.嵌套文件包含 9. 其他预处理指令 10. 完结散花 悟已往之不谏&#xff0c;知来者犹可追 …