当前位置:网站首页 > 编程语言 > 正文

jvm内存模型 知乎(jvm内存模型及调优)



目录

  • 1 项目上线遇到的问题
  • 2 jvm的运行参数
  • 2.1 标准参数
  • 2.1.1 -D<名称>=<值>
  • 2.1.2 -server 和 -client
  • 2.2 -X 参数(非标准参数)
  • 2.2.1 -Xint
  • 2.2.2 -Xcomp
  • 2.2.3 -Xmixed
  • 2.2.4 -Xms 设置堆内存初始化大小
  • 2.2.5 -Xmx 设置堆内存最大大小
  • 2.3 -XX 参数(使用效率高)
  • 2.3.1 boolean类型
  • 2.3.2 非Boolean类型
  • 2.4 查看jvm的运行参数
  • 2.5 jsp命令
  • 2.6 jinfo 命令
  • 3 jvm 的内存模型
  • 3.1 jatat 命令
  • 4 内存溢出的定位与分析
  • 4.1 分析
  • 4.2 代码演示内存溢出
  • 5 项目卡住不动的情况
  • 6 jvisualvm 的使用(包含之前所有命令的功能)

1 运行的项目卡住了,项目里面的日志没有输出,程序没有反应
2 服务器的cpu 负载突然升高;
3 只有在上线的情况,才会有多线程的情况,本地即使压测,也没有什么用处,所以多线程,一定要上线的情况进行压测;

jvm有3种参数类型

java面试 JVM调优 jvm调优实战简书_java

2.1.1 -D<名称>=<值>

这个参数就是我们的项目里面设置了一个变量属性,之后再启动项目的时候使用这个进行给变量属性赋值;

java面试 JVM调优 jvm调优实战简书_开发语言_02

在哪里给这个name变量设置值?我们在里面可以设置

java面试 JVM调优 jvm调优实战简书_开发语言_03

java面试 JVM调优 jvm调优实战简书_java面试 JVM调优_04

java面试 JVM调优 jvm调优实战简书_java面试 JVM调优_05

java面试 JVM调优 jvm调优实战简书_堆内存_06

2.1.2 -server 和 -client

通过这两个参数设置运行模式
-server
根据这个设置的是,初始化的时候,堆空间的内存大一些,启动项目的时候慢,但是之后因为内存大,所以运行快,默认使用的是并行垃圾回收器

java面试 JVM调优 jvm调优实战简书_intellij-idea_07

java面试 JVM调优 jvm调优实战简书_intellij-idea_08

java面试 JVM调优 jvm调优实战简书_java面试 JVM调优_09

java面试 JVM调优 jvm调优实战简书_堆内存_10

java面试 JVM调优 jvm调优实战简书_开发语言_11

java面试 JVM调优 jvm调优实战简书_intellij-idea_12

java面试 JVM调优 jvm调优实战简书_堆内存_13

2.2.1 -Xint

java面试 JVM调优 jvm调优实战简书_java_14

java面试 JVM调优 jvm调优实战简书_intellij-idea_15

2.2.2 -Xcomp

java面试 JVM调优 jvm调优实战简书_java_16

java面试 JVM调优 jvm调优实战简书_java面试 JVM调优_17

java面试 JVM调优 jvm调优实战简书_开发语言_18

2.2.3 -Xmixed

java面试 JVM调优 jvm调优实战简书_堆内存_19

java面试 JVM调优 jvm调优实战简书_java面试 JVM调优_20

2.2.4 -Xms 设置堆内存初始化大小

java面试 JVM调优 jvm调优实战简书_intellij-idea_21

2.2.5 -Xmx 设置堆内存最大大小

java面试 JVM调优 jvm调优实战简书_开发语言_22

java面试 JVM调优 jvm调优实战简书_java面试 JVM调优_23

java面试 JVM调优 jvm调优实战简书_java_24

2.3.1 boolean类型

java面试 JVM调优 jvm调优实战简书_java面试 JVM调优_25

2.3.2 非Boolean类型

java面试 JVM调优 jvm调优实战简书_java面试 JVM调优_26

我们启动一个项目,需要在控制台输出所有的jvm的运行参数

java面试 JVM调优 jvm调优实战简书_java面试 JVM调优_27

java面试 JVM调优 jvm调优实战简书_堆内存_28

java面试 JVM调优 jvm调优实战简书_java_29

jps是jdk提供的一个查看当前java进程的小工具;

java面试 JVM调优 jvm调优实战简书_堆内存_30

java面试 JVM调优 jvm调优实战简书_intellij-idea_31

java面试 JVM调优 jvm调优实战简书_堆内存_32

java面试 JVM调优 jvm调优实战简书_开发语言_33

java面试 JVM调优 jvm调优实战简书_java面试 JVM调优_34

java面试 JVM调优 jvm调优实战简书_java_35

java面试 JVM调优 jvm调优实战简书_java_36

jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。参考格式如下:

java面试 JVM调优 jvm调优实战简书_intellij-idea_37

java面试 JVM调优 jvm调优实战简书_堆内存_38

java面试 JVM调优 jvm调优实战简书_java面试 JVM调优_39

java面试 JVM调优 jvm调优实战简书_堆内存_40

java面试 JVM调优 jvm调优实战简书_java_41

java面试 JVM调优 jvm调优实战简书_堆内存_42

java面试 JVM调优 jvm调优实战简书_intellij-idea_43

java面试 JVM调优 jvm调优实战简书_堆内存_44

java面试 JVM调优 jvm调优实战简书_intellij-idea_45

java面试 JVM调优 jvm调优实战简书_堆内存_46

java面试 JVM调优 jvm调优实战简书_堆内存_47

java面试 JVM调优 jvm调优实战简书_开发语言_48

还有一个远程,就是服务器上面有一个软件,比如Tomcat软件,我们想要监控这个Tomcat的jvm的使用情况,那么就可以使用他远程连接,前提是在Tomcat的配置文件里面,需要加一个配置

java面试 JVM调优 jvm调优实战简书_开发语言_49

到此这篇jvm内存模型 知乎(jvm内存模型及调优)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 接口500错误原因解决方法(接口请求500点错误是什么)2024-12-16 21:45:04
  • 国内github(国内github叫什么)2024-12-16 21:45:04
  • jflash擦除芯片(jlink擦除芯片)2024-12-16 21:45:04
  • vdex反编译(odex反编译)2024-12-16 21:45:04
  • 虚拟机无法识别优盘(虚拟机里无法识别usb)2024-12-16 21:45:04
  • pointnet如何运行(pointnet原理)2024-12-16 21:45:04
  • 耳机蓝牙地址在哪里看(耳机蓝牙地址怎么看)2024-12-16 21:45:04
  • 卡巴斯基更新不了怎么办呀(卡巴斯基安卓中文版怎么更新)2024-12-16 21:45:04
  • pp是啥意思?(pp是啥意思 百分数)2024-12-16 21:45:04
  • 删除虚拟环境后包会一起删除吗(如何删除虚拟环境)2024-12-16 21:45:04
  • 全屏图片