当前位置: 首页 > news >正文

涨薪技术|0到1学会性能测试第56课- 堆与栈、GC回收机制

前面的推文我们掌握了Tomcat调优技术。今天给大家分享JVM调优技术。后续文章都会系统分享干货,带大家从0到1学会性能测试。

图片

01堆与栈

在上一章节介绍JVM内存模型时,发现JVM内存分为堆和栈两种,那么为什么需要将内存分为堆和栈两种呢?之所以分成两类是为了JVM在调用内存时更好的对内存进行管理。

在JAVA虚拟机中使用的数据又分为两类:

一是基础数据;

二是引用数据;

基础数据是引用数据本身,引用数据是引用数据对象。基础数据通常包括:byte、short、int、long、char、float、double、Boolean、returnAddres。引用类型包括:接口、类、数组。

栈是运行单位,所以的运行对象,都在是栈中,当程序运行时JVM会为每个线程一个栈大小。每个线程栈是不通用的,因为每个任务都有一个独立的线程来执行。堆是存储单位,所以有需要使用的数据都在堆中,堆是可以共享的。也就是堆是处理的数据的地方,栈是用来处理的逻辑的地方。之所以分堆与栈,这样的好处是可以将业务逻辑与数据进行分离,同时也可以提高数据的共享程度。

从软件设计的角度来看,栈代表了处理逻辑,而堆代表了数据,这样将数据与逻辑分离可以让处理逻辑更为清晰。这种隔离、模块化的思想在软件设计的方方面面都有体现。

堆与栈的分离,使得堆中的内容可以被多个栈共享,但栈不管理 Java栈还是方法栈其线程

http://www.dtcms.com/a/180276.html

相关文章:

  • 深入探索 Python 的 QuTiP 5 库:量子计算与开放量子系统模拟的利器
  • Prometheus生产实战全流程详解(存储/负载/调度篇)
  • sklearn自定义pipeline的数据处理
  • stm32之USART
  • 【计算机主板架构】ATX架构
  • CN3791 锂电池充电芯片详解及电路设计要点-国产芯片
  • uniapp-商城-46-创建schema并新增到数据库
  • AI技术与园区运营的深度融合:未来生态型园区的建设路径
  • 镜头内常见的马达类型(私人笔记)
  • Python 数据分析与可视化:开启数据洞察之旅(5/10)
  • k8s之探针
  • MCP(Model Context Protocol)是专为LLM(大语言模型)应用设计的标准化协议
  • 解决 Ubuntu DNS 无法解析问题(适用于虚拟机 长期使用)
  • Spring MVC Session 属性 (@SessionAttributes) 是什么?如何使用它共享数据?
  • 信赖域策略优化TRPO算法详解:python从零实现
  • .net/C#进程间通信技术方案总结
  • 机器学习与深度学习的区别与联系:多角度详细分析
  • Linux基础(关于进程相关命令)
  • CSS opacity
  • 计算人声录音后电平的大小(dB SPL->dBFS)
  • 访问网站提示“不安全”“有风险”怎么办?
  • 3D桌面可视化开发平台HOOPS Native Platform,如何实现3D系统快速开发与部署?
  • 【网安播报】Meta 推出 LlamaFirewall开源框架以阻止 AI 越狱、注入和不安全代码
  • 【python】 python拆包
  • buck和boost总结
  • web 自动化之 selenium 元素四大操作三大切换等待
  • Oracle非归档模式遇到文件损坏怎么办?
  • AI NeRF:Meta实现手机端实时毛发渲染,开启移动AR/VR新纪元——从实验室到口袋:NeRF技术的轻量化革命
  • Android Handler 机制面试总结
  • 更新 / 安装 Nvidia Driver 驱动 - Ubuntu - 2