性能测试常见的内存溢出问题: JVM 内存溢出如何调优?

本文介绍了JVM的基本概念、内存模型以及如何进行内存调优。JVM内存分为5个区域,包括程序计数器、虚拟机栈、本地方法栈、方法区(元空间)和堆。当内存不足时,会发生内存溢出。通过调整JVM参数,如设置堆内存大小,可以优化项目性能。面试中常见的问题包括哪些内存会被GC回收及其回收时机。
摘要由CSDN通过智能技术生成

针对java项目做性能测试的时候,很多同学都见过一个报错,就是OOM【Out Of MemoryError】;那出现这种报错就是项目发生了内存溢出的问题,这是比较严重的性能问题。所以,作为一个性能测试工程师,我们要能够分析JVM内存的问题以及理解其中的原理,才能更好的给JVM内存出现的性能瓶颈问题进行调优。

 

 

JVM概念

要学习JVM内存问题分析和调优之前,我们先来了解一下什么是JVM?

JVM【java virtual machine】: java虚拟机,是Java程序运行所需要的一台虚拟机器。

在操作系统上运行一个java程序的过程中,也就是通过“java -jar ” 启动一个java进程的同时就会启动一个java虚拟机。java虚拟机是在操作系统之上的程序,JVM直接和操作系统进行交互,不跟硬件直接交互。

但是java虚拟机可以管理自己的进程和线程,有自己独立的内存,管理自己的内存,这个叫做JVM内存。

图片

JVM的优点
  • 这个机制叫做:GC 【Garbage Collection】,代码写完对象,不需要开发人员手动释放内存,而是自动回收内存,这是java应用程序的JVM内存的独有机制 ,相比于其他的语言 C是不存在自动回收的,需要手动删除。

  • 可以实现一次编写,到处运行 ,并支持一个包在Linux和windows mac等不同的平台都可以直接兼容运行;

  • 有自动内存管理和垃圾回收机制,这是JVM非常重要的一个关键特性;

  • 覆盖广:因为现在市面上java语言的项目很多很普遍,所以只要是java项目都是基于jvm实现的。

JVM内存模型

现在的java程序都是基于1.8版本,因为java1.8是目前稳定主流的版本,企业基本都兼容1.8及其以上的版本,所以我们学习1.8java版本的内存模型就可以了。

注意:不同版本之间JVM内存存在一定差异,比如只有1.8的版本及之后才有元空间的概

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值