当前位置:网站首页>标量替换、栈上分配、同步消除
标量替换、栈上分配、同步消除
2022-08-02 13:48:00 【邱可爱】
逃逸分析
含义
逃逸分析是目前Java虚拟机中比较前沿的优化技术,它并不是直接优化代码的手段,而是为其他优化措施(标量替换、栈上分配、同步消除)提供依据的分析技术。
基本原理
分析对象的作用域,是否会被外部方法或者其他线程引用。
标量替换
含义
标量是指不可再分的原始数据类型(int、long等数值类型及reference类型等)。如同数据库中所说的数据的原子性。
聚和量是指可以再分的数据(对象)。
基本原理
当经过逃逸分析后,发现某个对象不会在方法之外使用,且能够拆成多个标量,那么程序执行时,不会创建该对象,而是创建多个需要的成员变量。
栈上分配
含义
如果一个对象没有发生逃逸,那这个对象会被标量替换,这个对象的成员信息会被分配到线程栈,而不会在堆上分配,这样对象会随着栈帧的销毁而销毁,从而减少GC的压力,节约空间,提升性能。
同步消除
含义
线程同步本身是一个相对耗时的过程,如果逃逸分析能够确定一个变量不会逃逸出线程,无法被其他线程访问,那么这个变量的读写肯定就不会有竞争,对这个变量实施的同步措施也就可以安全地消除掉(去掉synchronized)。
边栏推荐
- 电脑死机,Word忘了保存怎么办?怎么恢复?(编辑器是WPS)
- 【C语言】夏日一题 —— 求最大公约数和最小公倍数
- C语言提高篇(三)
- LeetCode(剑指 Offer)- 53 - II. 0~n-1中缺失的数字
- eclipse连接数据库后插入数据报错null
- Oracle update error operation single table rollback
- SQL函数 UNIX_TIMESTAMP
- SQL函数 UPPER
- GTK:Gdk-CRITICAL **: IA__gdk_draw_pixbuf: assertion ‘GDK_IS_DRAWABLE (drawable)’ failed
- [C language] Analysis of function recursion (2)
猜你喜欢

Mysql视图

【C语言】剖析函数递归(3)

First acquaintance of scrapy framework 1

百日刷题计划 ———— DAY1

How to create short images and short videos from the media?How to make the click volume reach 10W?

高效代码静态测试工具Klocwork 2022.2——Portal全新升级、支持RLM

二进制中1的个数

【C语言】函数哪些事儿,你真的get到了吗?(1)
![[C language] Explicit array solution (1)](/img/d2/26e3e64bb07578a6348747c00abb64.png)
[C language] Explicit array solution (1)

节省50%成本!京东云重磅发布新一代混合CDN产品
随机推荐
好用的php空间,推荐国内三个优质的免费PHP空间[通俗易懂]
嵌入式系统驱动初级【2】——字符设备驱动基础上_基础框架
二极管及其应用
【C语言】剖析函数递归(1)
CVE-2020-27986(Sonarqube敏感信息泄漏) 漏洞修复
目前想通过提取本地excel文件创建数据表,在sql语句这出了一些问题
[C language] Explicit array solution (1)
为什么四个字节的float表示的范围比八个字节的long要广
拯救流浪猫 | 「喵先锋」系列数字版权盲盒明日开抢
C语言结构体(入门)
requestparam注解接的收的是什么格式(玄机赋注解)
RISC-V instruction format and 6 basic integer instructions
Oracle数据库的闪回技术
How to do short video food from the media?5 steps to teach you to get started quickly
玉溪卷烟厂通过正确选择时序数据库 轻松应对超万亿行数据
存储过程详解
鲁大师7月新机性能/流畅榜:性能跑分突破123万!
智能指针-使用、避坑和实现
Kunpeng devkit & boostkit
GTK:Gdk-CRITICAL **: IA__gdk_draw_pixbuf: assertion ‘GDK_IS_DRAWABLE (drawable)‘ failed