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

news2025/2/27 23:26:54

针对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的版本及之后才有元空间的概念&#x

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

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

相关文章

国网I6000请求,出现缺少SOAPAction头信息如何解决?

错误代码: Client.NoSOAPAction 这表示客户端请求中缺少SOAPAction头信息。 错误消息: no SOAPAction header! 这明确指出请求中没有包含SOAPAction头。 详细信息: hostname: 9f1957926889,这是服务器的主机名,不直接影响错误分析。 解决方案 添加SOAP…

案例学习-存量更新规划实施探索(武汉)

案例学习-存量更新规划实施探索(武汉) 武汉市在早期旧城更新实践中发现零散化的更新往往导致资源配置分散、城市建设破碎化等弊病,特别是由于过于强调项目自身“经济平衡”,在实施过程中也逐步暴露出住宅占比过大、强度偏高、公服…

【工具】新手如何正确使用Pycharm?

1. 什么是JetBrains Toolbox JetBrains Toolbox是一个管理工具,用于安装、更新和管理JetBrains开发工具的所有版本。它可以简化多个IDE的管理,并确保你总是使用最新版本的软件。 2. 安装JetBrains Toolbox 步骤1:下载Toolbox 访问JetBrai…

List 列表

文章目录 一、什么是 List 列表1.1 创建 List 列表的方式1.2 列表的新增函数方法1.3 列表的删除函数方法1.4 修改列表数据的方法1.5 列表的查询函数方法1.6 列表的排序和反序1.7 列表的复制 一、什么是 List 列表 List 列表:该数据类型定义的变量可以理解为是一个数…

用Python向Word文档添加页眉和页脚

用Python向Word文档添加页眉和页脚 添加页眉和页脚效果代码 添加页眉和页脚 在本文中,我们将用python向文档中添加页眉和页脚。 效果 添加前的文档: 添加页眉和页脚后: 代码 from docx import Documentdef add_header_footer(doc_path…

C#——静态成员和非静态成员详情

静态成员和非静态成员 调用: 静态属性(static) : 类名.属性名调用 非静态属性(没static) : 1.先创建对象 2.对象.属性 特点: 静态方法里面只能访问静态成员 非经态方法中可以访问所有的属性 static数据成员在类的内部声明,但只能在类的外部定义,…

时序预测 | MATLAB实现TCN-Attention自注意力机制结合时间卷积神经网络时间序列预测

时序预测 | MATLAB实现TCN-Attention自注意力机制结合时间卷积神经网络时间序列预测 目录 时序预测 | MATLAB实现TCN-Attention自注意力机制结合时间卷积神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现TCN-Attention自注意力机制结合时…

JVM堆栈的区别、分配内存与并发安全问题、对象定位

一、堆和栈的区别 堆(Heap)和栈(Stack)是两种基本的数据结构,它们在内存管理、程序执行流程控制等方面扮演着重要角色。在编程语言尤其是Java这样的高级语言环境中,堆和栈的概念被用来描述程序运行时的内存…

【嵌入式DIY实例】-Nokia 5110显示DS18B20传感器数据

Nokia 5110显示DS18B20传感器数据 文章目录 Nokia 5110显示DS18B20传感器数据1、硬件准备2、代码实现本文将介绍如何使用 ESP8266 NodeMCU 板和 DS18B20 数字温度传感器实现简单的温度测量站。 NodeMCU 微控制器 (ESP8266EX) 从 DS18B20 传感器读取温度值,并将其打印在诺基亚 …

UnityAPI学习之延时调用(Invoke)

延时调用(Invoke) 当我们进行简单函数的延时调用不想使用协程时,我们可以使用Invoke()函数 using System.Collections; using System.Collections.Generic; using UnityEngine;public class NO15_Invoke : MonoBehaviour {//显示在每次生成…

【服务的主从切换实现原理】

文章目录 主从架构介绍zookeeper利用ZK实现主从架构 主从架构介绍 主从服务架构是一种常见的分布式系统设计模式,常用于提高系统的性能、可用性和扩展性。在这种架构中,系统中的节点被分为两类:主节点(Master)和从节点…

JVM 类加载器的工作原理

JVM 类加载器的工作原理 类加载器(ClassLoader)是一个用于加载类文件的子系统,负责将字节码文件(.class 文件)加载到 JVM 中。Java 类加载器允许 Java 应用程序在运行时动态地加载、链接和初始化类。 2. 类加载器的工…

Dom案例——计算器,二级联动,表单验证(附完整代码)

Dom案例——计算器,二级联动,表单验证(附完整代码) 文章目录 Dom案例——计算器,二级联动,表单验证(附完整代码)一、计算器案例二、二级联动三、表单验证 一、计算器案例 1、实现计…

vivado HW_VIO

描述 虚拟输入/输出(VIO)调试核心hw_VIO可以监视和驱动内部 在编程的XilinxFPGA上实时显示信号。在没有物理访问的情况下 目标硬件,可以使用此调试功能来驱动和监视 存在于物理设备上。 VIO核心具有硬件探测器hw_probe对象,用于监…

vulhub之httpd篇

Apache 换行解析漏洞(CVE-2017-15715) Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一…

用于工业网络状态监测的Softing plantPerfect Monitor产品亮相2024 ACHEMA

Softing工业在2024年阿赫玛博览会(ACHEMA 2024)上展示了“plantPerfect Monitor”产品。该产品是一种用于对工业网络和现有工业系统进行全面状况监测的创新解决方案。 (“plantPerfect Monitor”提供全面的工业通信网络状态监控) …

单触控单输出触摸开关芯片PT2052A

1.产品概述 PT2052封装和丝印 PT2052A 是一款单通道触摸检测芯片。该芯片内建稳压电路,提供稳定电压给触摸感应电路使用,同时内部集成高效完善的触摸检测算法,使得芯片具有稳定的触摸检测效果。该芯片专为取代传统按键而设计,具有…

Hexapod C-887使用手册 -- 4,5,6

4 - 拆包 小心拆包C-887 根据合同和发货注意比较发货范围的内容: 检查危险符号的内容。如果任何零件损坏或缺失,立即联系客服部门。 保存所有包装材料,以防产品需要返厂。 5 - 安装 本章中 安装一般注意 安装PC软件 确保通风 接地C-…

一键取票,YonSuite商旅费控助力企业“消灭报销”

在数字化与智能化并行的时代,企业商旅管理正经历着前所未有的变革。面对传统商旅出行管理中流程复杂、费用不透明等问题,YonSuite商旅费控以其独特的数智化商旅管理平台,为企业提供了一站式的解决方案,特别是其“一键取票”功能&a…

数据中心布线管理:预标记线缆与移动扫描技术的融合

随着信息技术的飞速发展,数据中心布线管理面临着前所未有的挑战。传统的布线管理方式已无法满足现代数据中心高效、准确和可靠的需求。在这样一个背景下,预标记线缆与移动扫描技术的结合,为数据中心布线管理带来了革命性的解决方案。 布线管理…