0
点赞
收藏
分享

微信扫一扫

【Java进阶营】Java技术专题-虚拟机参数基础学习

JVM参数简介

不稳定参数语法规则

布尔类型参数值

数字类型参数值:

字符串类型参数值

-XX:= 给选项设置一个字符串类型值,通常用于指定一个文件、路径或一系列命令列表。

FullGC出现前后打印日志

JVM参数实现在Full GC前后自动生成Dump。共有三个VM参数需要设置:

设置这些参数的方法,这里总结了四种,大家可以根据情况选择使用。

方法1

启动jvm时,带上这些参数(这个方法适合开发测试环境)

方法2

使用JConsole等工具调用JMX服务的com.sum.management.HotSpotDiagnostic.setVMOption方法来实现。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

  • 第一个参数为HeapDumpBeforeFullGC, 第二个参数为true表示在Full GC前进行dump.

  • 第一个参数为HeapDumpAfterFullGC, 第二个参数为true表示在Full GC前进行dump.

方法3

使用 **jinfo **命令进行设置。(生产环境常用的方法)

调用jinfo命令设置VM参数

方法4

Java堆溢出

怎么解决

解决办法见思路


虚拟机栈和本地方法栈溢出

内存溢出:就是栈所占用内存和数量太多了,同时也侧面看出来创建的线程数量太多了,导致OOM。

解决办法

单线程来说:避免栈溢出

多线程造成的OOM


方法区和运行时常量池溢出

方法区存放的是类信息和运行时常量池

如果创建大量的类
如果创建大量的常量且放入常量池

直接内存溢出


在运行的时候设置JVM参数,使其Dump出内存异常信息

通过内存映像分析工具(Eclipse Memory Analyzer)对Dump出来的内存转储快照进行分析

内存泄漏(Memory Leak)
内存溢出(Memory Overflow)

确定是哪种情况之后

举报

相关推荐

0 条评论