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

JVM篇---第九篇

系列文章目录


文章目录

  • 系列文章目录
  • 一、什么是指针碰撞?
  • 二、什么是空闲列表
  • 三、什么是TLAB?


一、什么是指针碰撞?

一般情况下,JVM的对象都放在堆内存中(发生逃逸分析除外)。当类加载检查通过后,Java虚拟
机开始为新生对象分配内存。如果Java堆中内存是绝对规整的,所有被使用过的的内存都被放到一
边,空闲的内存放到另外一边,中间放着一个指针作为分界点的指示器,所分配内存仅仅是把那个
指针向空闲空间方向挪动一段与对象大小相等的实例,这种分配方式就是 指针碰撞
在这里插入图片描述

二、什么是空闲列表

如果Java堆内存中的内存并不是规整的,已被使用的内存和空闲的内存相互交错在一起,不可以进
行指针碰撞啦,虚拟机必须维护一个列表,记录哪些内存是可用的,在分配的时候从列表找到一块
大的空间分配给对象实例,并更新列表上的记录,这种分配方式就是空闲列表。代码片

三、什么是TLAB?

可以把内存分配的动作按照线程划分在不同的空间之中进行,每个线程在Java堆中预先分配一小块
内存,这就是TLAB(Thread Local Allocation Buffer,本地线程分配缓存) 。虚拟机通过 -
XX:UseTLAB 设定它的。

http://www.lryc.cn/news/185116.html

相关文章:

  • 探索 GAN 和 VAE 之外的 NLP 扩散模型
  • 发现很多人分不清 jwt session token 的区别?
  • GPT系列论文解读:GPT-3
  • 神经网络中的知识蒸馏
  • jmeter利用自身代理录制脚本
  • 【漏洞复现】时空智友企业流程化管控系统 session泄露
  • 获取泛型的类型
  • [Python进阶] Pyinstaller打包问题
  • 计算机竞赛 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python
  • 竞赛选题 机器学习股票大数据量化分析与预测系统 - python 竞赛选题
  • 智慧驿站:为城市带来全新智慧公厕未来形态
  • Java获取汉字首字母
  • 基于or-tools的人员排班问题建模求解(JavaAPI)
  • 设备管理团队如何做好停机维护工作_基于PreMaint设备数字化平台
  • c++ qt--线程(二)(第九部分)
  • ​企业数据泄露不断,深信服EDR助企业构建数据“安全屋”
  • 单线复用iptv影响网速吗?
  • C语言中常用的字符串处理函数(strlen、strcpy、strcat、strcmp)
  • Suricata – 入侵检测、预防和安全工具
  • vscode 乱码解决
  • SpringCloud(37):Spring Cloud Alibaba 综合集成架构演示
  • 【单片机】15-AD和DA转换
  • 基于FPGA的I2C读写EEPROM
  • Viva Employee Communications Communities部署方案
  • WPF向Avalonia迁移(三、项目结构)
  • cvpr24写作模板pdfLaTex编译器注意点小结
  • windows版php扩展包下载
  • 计算机竞赛 题目:基于深度学习的中文汉字识别 - 深度学习 卷积神经网络 机器视觉 OCR
  • Django跨域访问 nginx转发 开源浏览器
  • Docker Alist 在线网盘部署