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

常州网站搜索排名网站备案快速备案

常州网站搜索排名,网站备案快速备案,网站整体形象策划与包装,传统网站 手机网站答:会 new对象时。指针会向右移动一个对象大小的距离,假如一个线程A正在给字符串对象S分配内存。另外一个线程B同时为ArrayList对象1分配内存,两个线程就发生了抢占。 JVM怎么解决堆内存分配的竞争问题? 为了解决堆内存分配的抢占…

答:会

new对象时。指针会向右移动一个对象大小的距离,假如一个线程A正在给字符串对象S分配内存。另外一个线程B同时为ArrayList对象1分配内存,两个线程就发生了抢占。

JVM怎么解决堆内存分配的竞争问题?
为了解决堆内存分配的抢占问题,JVM为每个线程保留了一小块的内存空间,被称为TLAB也就是线程本地分配缓冲区。用于存放该线程分配的对象。

当线程需要分配对象时,直接从TLAB中分配,只有当TLAB用尽或者对象太大需要直接在堆中分配时,才会使用全局分配指针。

这⾥简单测试⼀下 TLAB。

可以通过 java -XX:+PrintFlagsFinal -version | grep TLAB 命令查看当前 JVM 是否开启了 TLAB。

如果开启了 TLAB,会看到类似以下的输出,其中 bool UseTLAB 的值为 true。

我们编写⼀个简单的测试类,创建⼤量对象并强制触发垃圾回收,查看 TLAB 的使⽤情况。

class TLABDemo {public static void main(String[] args) {for (int i = 0; i < 10_000_000; i++) {allocate(); // 创建⼤量对象}		System.gc(); // 强制触发垃圾回收}private static void allocate() {// ⼩对象分配,通常会使⽤ TLABbyte[] bytes = new byte[64];}
}

在 VM 参数中添加 -XX:+UseTLAB -XX:+PrintTLAB -XX:+PrintGCDetails -XX:+PrintGCDateStamps ,运⾏后可以看到这样的内容:

waste:未使⽤的 TLAB 空间。

alloc:分配到 TLAB 的空间。

refills:TLAB 被重新填充的次数。

可以看到,当前线程的 TLAB ⽬标⼤⼩为 10,496 KB( desired_size: 10496KB );未发⽣慢分配( slow allocs: 0 );分配效率直接拉满( alloc: 1.00000 52494KB )。

当使⽤ -XX:-UseTLAB -XX:+PrintGCDetails 关闭 TLAB 时,会看到类似以下的输出:

直接出现了两次 GC,因为没有 TLAB,Eden 区更快被填满,导致年轻代 GC。年轻代 GC 频繁触发,⼀部分⻓⽣命周期对象被晋升到⽼年代,间接导致⽼年代 GC 触发。

http://www.dtcms.com/wzjs/839646.html

相关文章:

  • iis添加网站 别名营销qq怎么申请
  • 坪地网站建设价位商品网站模板
  • 深圳小程序网站开发做网站怎么把背景变成纯色
  • 如何做外文网站wordpress使用json
  • 做哈尔滨本地门户网站赚钱吗吉利网站建设
  • 网站哪家公司做得好建筑英才网招聘
  • 淘宝网站都是怎么做的沈阳网络关键词排名
  • 如何用微信小程序做网站南县网站建设推荐
  • 石家庄seo网站优化价格广州17网
  • 网站导出链接查询凡科建站的模板 怎么弄下来
  • 襄阳网站建设多少钱浙江同凯建设深圳公司
  • .net招聘网站怎么做端子东莞网站建设
  • 23岁老牌网站中国建设银行怎么添加卡网站
  • 个人投资公司注册条件wordpress图片优化加速
  • 网站是否上线divi wordpress json
  • 怎么对网站做seo优化网站模板修改工具
  • 建设企业网站得花多少钱机械加工网配件销售网
  • 长春网站开发报价开发工具选项卡在哪
  • 深圳网站建设哪家比较好长沙有哪些知名网站
  • 个人网站做什么资源赚钱坪山网站的建设
  • 网站带数据库下载wordpress编辑栏不见了
  • iis发布网站无法访问做哪些网站比较赚钱
  • 深圳商业网站建设天眼查 企业查询网页
  • 做购物网站的初衷云天下网站建设
  • 七米网站开发公司网站开发设计
  • 宁波做亚马逊网站网站如何做超链接
  • 做电影网站赚钱知乎科技创新作文
  • 惠州做网站开发网站个人备案流程
  • 如何自己制作免费网站解决方案网站设计
  • 北京建站公司兴田德润信任徐汇微信手机网站制作