首页 > 其他分享 >JVM调优参数和概念

JVM调优参数和概念

时间:2024-07-15 19:27:22浏览次数:18  
标签:JVM 收集器 XX 调优 参数 内存 设置

Java虚拟机(JVM)调优是一个复杂的过程,涉及到对JVM的内存管理、垃圾收集器选择、线程管理等多个方面的优化。以下是一些常见的JVM调优参数和概念:

1. **堆内存设置**:
   - `-Xms<size>`:设置JVM启动时的初始堆大小。
   - `-Xmx<size>`:设置JVM最大堆大小。

2. **新生代和老年代内存设置**:
   - `-Xmn<size>`:设置新生代大小。
   - `-XX:NewSize=<size>`:设置新生代初始大小。
   - `-XX:MaxNewSize=<size>`:设置新生代最大大小。
   - `-XX:SurvivorRatio=<ratio>`:设置新生代中Eden区与Survivor区的比例。

3. **垃圾收集器选择**:
   - `-XX:+UseSerialGC`:使用串行垃圾收集器,适合单核处理器。
   - `-XX:+UseParallelGC`:使用并行垃圾收集器,适合多核处理器。
   - `-XX:+UseConcMarkSweepGC`:使用CMS垃圾收集器,适合对延迟敏感的应用。
   - `-XX:+UseG1GC`:使用G1垃圾收集器,适合大堆内存和需要高吞吐量的应用。
   - `-XX:+UseZGC`:使用Z Garbage Collector,适合需要极低延迟的应用。

4. **堆内存分配策略**:
   - `-XX:+AggressiveHeap`:尝试减少堆内存的使用。

5. **垃圾收集行为调整**:
   - `-XX:+DisableExplicitGC`:禁用`System.gc()`的调用。
   - `-XX:+HeapDumpOnOutOfMemoryError`:当发生内存溢出时生成堆转储。

6. **JIT编译器设置**:
   - `-XX:+TieredCompilation`:启用分层编译,根据代码的热度自动选择编译级别。
   - `-XX:MaxInlineSize=size`:设置内联方法的最大字节数。

7. **线程栈大小**:
   - `-Xss<size>`:设置每个线程的栈大小。

8. **直接内存设置**:
   - `-XX:MaxDirectMemorySize=size`:设置直接内存的最大大小。

9. **监控和诊断工具**:
   - `-XX:+PrintGCDetails`:打印详细的GC日志。
   - `-XX:+PrintGCDateStamps`:在GC日志中打印时间戳。
   - `-XX:+PrintGCApplicationConcurrentTime`:打印应用程序的并发时间。

10. **其他高级设置**:
    - `-XX:+UseBiasedLocking`:启用偏向锁,减少锁的竞争。
    - `-XX:+UseStringDeduplication`:启用字符串去重。

JVM调优通常需要根据应用的特定需求和运行环境进行,可能需要多次测试和调整以达到最佳性能。此外,使用JVM监控工具如VisualVM、JConsole等可以帮助分析和理解JVM的行为,从而做出更合理的调优决策。
 

标签:JVM,收集器,XX,调优,参数,内存,设置
From: https://blog.csdn.net/xintai1999/article/details/140436452

相关文章

  • 《剑指JVM》——第6章——本地方法栈——运行时数据区篇12
    ......
  • Django 模型字段类型和字段参数总结
    models.AutoField作用说明:默认生成列名为id的列,并设置为主键数据类型:int(11)必备参数:primary_key=True作为主键存在主键django会默认自带ColName=models.AutoField(primary_key=True)2.models.CharField作用说明:字符串字段,长度小于255数据类型:varchar(50)必......
  • 微服务项目配置文件参数安全方案
    项目环境springboot系列项目maven依赖管理任意配置中心(apollo/配置文件/k8sConfigMapSecrets)项目代码添加依赖<dependency>    <groupId>com.github.ulisesbocchio</groupId>    <artifactId>jasypt-spring-boot-starter</artifactId>    <version>${ver......
  • JVM类文件结构
    .java源文件packagetest.JVM;publicclassTest{publicstaticvoidmain(String[]args){System.out.println("haha");}}十六进制查看.class文件魔数第一行中有一串特殊的字符CAFEBABE,它就是一个魔数,是JVM识别class文件的标志,JVM会在......
  • 【JVM_01】——初识JVM运行流程
    目录1-引言:初识JVM1-1JVM是什么?(What)1-1-1概念1-1-2优点1-2为什么学习JVM?(Why)2-核心:JVM工作的原理(How)⭐2-1JVM的组成部分及工作流程2-2学习侧重点3-小结(知识点大纲):3-1JVM组成3-2类加载器3-3垃圾回收3-4JVM实践1-引言:初识JVM1-1JVM是什么?(......
  • 认识JVM
    类加载器运行时数据区执行引擎执行引擎的任务就是将字节码指令解释/编译为对应平台上的本地机器指令JVM架构图......
  • 网页三维CAD参数化建模开发框架的搭建教程
    前言mxcad3d是基于mxdraw的基础上,使用TypeScript和C++语言开发的一个网页三维CAD参数化建模框架,我们为开发者提供了丰富的参数化建模的开发接口,用户可以高效、便捷的对基本图元进行创建、同时丰富的JS开发接口方便了用户实现复杂的模型创建和CAD二次开发,网页测试DEMO链接如下:http......
  • 帆软参数
    帆软的左下角(西南方向)==》过滤过滤标记-黄色小三角帆软的右下角(西北方向)==》条件属性    条件属性标识-红色小三角https://help.fanruan.com/finereport/doc-view-231.html--单元格标识说明本地目录D:\帆软\FineReport_10.0\webapps\webroot\WEB-INF\reportlets&op=w......
  • elasticsearch性能调优方法原理与实战
    ❃博主首页:「码到三十五」,同名公众号:「码到三十五」,wx号:「liwu0213」☠博主专栏:<mysql高手><elasticsearch高手><源码解读><java核心><面试攻关>♝博主的话:搬的每块砖,皆为峰峦之基;公众号搜索「码到三十五」关注这个爱发技术干货的coder,......
  • 参数的引用类型
    publicGameObjecttargetGameObject;[Tooltip("移动速度")]publicfloatspeed=0.02f;privatevoidAwake(){Application.targetFrameRate=60;}//StartiscalledbeforethefirstframeupdatevoidStart()......