当前位置:网站首页>标量替换、栈上分配、同步消除
标量替换、栈上分配、同步消除
2022-08-02 13:48:00 【邱可爱】
逃逸分析
含义
逃逸分析是目前Java虚拟机中比较前沿的优化技术,它并不是直接优化代码的手段,而是为其他优化措施(标量替换、栈上分配、同步消除)提供依据的分析技术。
基本原理
分析对象的作用域,是否会被外部方法或者其他线程引用。
标量替换
含义
标量是指不可再分的原始数据类型(int、long等数值类型及reference类型等)。如同数据库中所说的数据的原子性。
聚和量是指可以再分的数据(对象)。
基本原理
当经过逃逸分析后,发现某个对象不会在方法之外使用,且能够拆成多个标量,那么程序执行时,不会创建该对象,而是创建多个需要的成员变量。
栈上分配
含义
如果一个对象没有发生逃逸,那这个对象会被标量替换,这个对象的成员信息会被分配到线程栈,而不会在堆上分配,这样对象会随着栈帧的销毁而销毁,从而减少GC的压力,节约空间,提升性能。
同步消除
含义
线程同步本身是一个相对耗时的过程,如果逃逸分析能够确定一个变量不会逃逸出线程,无法被其他线程访问,那么这个变量的读写肯定就不会有竞争,对这个变量实施的同步措施也就可以安全地消除掉(去掉synchronized)。
边栏推荐
猜你喜欢
随机推荐
方舟生存进化淘宝面板服务器是怎么一回事?
SQL函数 UCASE
我的创作纪念日
好用的php空间,推荐国内三个优质的免费PHP空间[通俗易懂]
OpenMMLab简介
wait() ,notify(),notifyAll()以及wait()与sleep()比较
腾讯安全游戏行业研讨会:生态共建,护航游戏产业健康发展
鲁大师7月新机性能/流畅榜:性能跑分突破123万!
How to improve the originality of self-media creation and create popular works?
"Second Uncle" is popular, do you know the basic elements of "exploding" short videos from the media?
RestTemplate use: set request header, request body
CVE-2020-27986(Sonarqube敏感信息泄漏) 漏洞修复
[C language] Explicit array solution (1)
Embedded system driver primary [2] - based on character device driver _ basic framework
Cannot determine loading status from target frame detached when selenium chrome driver is running
面试官:可以谈谈乐观锁和悲观锁吗
How to do short video food from the media?5 steps to teach you to get started quickly
Enterprise Network Planning Based on Huawei eNSP
多个驻外使领馆发提醒 事关赴华出行、人身财产安全
Image retrieval method based on deep learning!