ZeroTLAB 是 JVM 的一个布尔型 Flag,意思是是否将新创建的 TLAB 内的所有字节归零。

默认:false

举例-XX:+ZeroTLAB

当分配出来 TLAB 之后,根据 ZeroTLAB 配置,决定是否将每个字节赋 0。在 TLAB 申请时,由于申请 TLAB 都发生在对象分配的时候,也就是这块内存会立刻被使用,并修改赋值。操作内存,涉及到 CPU 缓存行,如果是多核环境,还会涉及到 CPU 缓存行 false sharing,为了优化,JVM 在这里做了 Allocation Prefetch,简单理解就是分配 TLAB 的时候,会尽量加载这块内存到 CPU 缓存,也就是在分配 TLAB 内存的时候,修改内存是最高效的

在创建对象的时候,本来也要对每个字段赋初始值,大部分字段初始值都是 0,并且,在 TLAB 返还到堆时,剩余空间填充的也是 int[] 数组,里面都是 0。

所以,TLAB 刚分配出来的时候,赋 0 避免了后续再赋 0。也能利用好 Allocation prefetch 的机制适应 CPU 缓存行

每日一刷,轻松提升技术,斩获各种offer:

最新文章

  1. CLR和.Net对象生存周期
  2. 【Win 10应用开发】Adaptive磁贴模板的XML文档结构
  3. Linux一些经典书籍
  4. 1、策略模式(Strategy)
  5. SQL笔记1:SELECT及SELECT高级应用
  6. 中小型ERP系统开发与实施
  7. FineUI第九天---表单验证
  8. 常用 Git 命令清单(摘录)
  9. SQL Server系统数据库
  10. SGU 148.B-Station
  11. Java中传参的值传递和引用传递问题(转)
  12. HTML中常用的列表标签
  13. Ubuntu包管理命令 dpkg、apt和aptitude
  14. HDU 3468 BFS+二分匹配
  15. codeforces round #419 B. Karen and Coffee
  16. UED视觉交互设计与流程介绍
  17. 流程控制语句(if switch)
  18. 第47节:Java当中的基本类型包装类
  19. JHipster开发环境安装
  20. 用windows性能监视器检测sqlserver 常见指标

热门文章

  1. window.open()打开新窗口教程
  2. 浅谈JavaScript代码性能优化2
  3. css animation @keyframes 动画
  4. matlab gui matlab gui 鼠标点击显示图像颜色值
  5. U盘制作系统启动盘方法
  6. 解决 minicom 不能接收键盘输入问题
  7. Mac下IDEA激活Jrebel
  8. Paginator Django 分页 When QuerySets are evaluated QuerySets 执行原理 QuerySets are lazy 惰性执行 访问db取数据的时机
  9. makefile自动生成学习
  10. JAVA中两个int类型的变量在不借助第三个变量的情况下完成值的互换