当前位置:网站首页>标量替换、栈上分配、同步消除
标量替换、栈上分配、同步消除
2022-08-02 13:48:00 【邱可爱】
逃逸分析
含义
逃逸分析是目前Java虚拟机中比较前沿的优化技术,它并不是直接优化代码的手段,而是为其他优化措施(标量替换、栈上分配、同步消除)提供依据的分析技术。
基本原理
分析对象的作用域,是否会被外部方法或者其他线程引用。
标量替换
含义
标量是指不可再分的原始数据类型(int、long等数值类型及reference类型等)。如同数据库中所说的数据的原子性。
聚和量是指可以再分的数据(对象)。
基本原理
当经过逃逸分析后,发现某个对象不会在方法之外使用,且能够拆成多个标量,那么程序执行时,不会创建该对象,而是创建多个需要的成员变量。
栈上分配
含义
如果一个对象没有发生逃逸,那这个对象会被标量替换,这个对象的成员信息会被分配到线程栈,而不会在堆上分配,这样对象会随着栈帧的销毁而销毁,从而减少GC的压力,节约空间,提升性能。
同步消除
含义
线程同步本身是一个相对耗时的过程,如果逃逸分析能够确定一个变量不会逃逸出线程,无法被其他线程访问,那么这个变量的读写肯定就不会有竞争,对这个变量实施的同步措施也就可以安全地消除掉(去掉synchronized)。
边栏推荐
- ORACLE expdp/impdp详解
- 苹果,与Web3 “八字不合”
- SQL函数 USER
- Automatically generate code generator recommendation-code-gen
- Differences and concepts between software testing and hardware testing
- Mysql index details (with pictures and texts)
- stack && queue
- Based on the flask mall administrator functions
- 二进制中1的个数
- SQL函数 $TSQL_NEWID
猜你喜欢
随机推荐
二进制中1的个数
目前想通过提取本地excel文件创建数据表,在sql语句这出了一些问题
苏州大学:从 PostgreSQL 到 TDengine
Taurus.MVC V3.0.3 microservice open source framework released: Make the evolution of .NET architecture easier in large concurrency.
自媒体创作怎样提高原创度,打造爆款作品?
【C语言】手撕循环结构 —— for语句
The uniapp/applet onload method executes the interpretation every time the page is opened
requestparam注解接的收的是什么格式(玄机赋注解)
高效代码静态测试工具Klocwork 2022.2——Portal全新升级、支持RLM
Word | 关于删除分节符(下一页)前面的版式就乱了解决方案
els 长条碰撞变形判断
【C语言】明解数组(1)
嵌入式系统驱动初级【2】——字符设备驱动基础上_基础框架
软件测试和硬件测试的区别及概念
Image retrieval method based on deep learning!
els 长条方块变形条件、边界碰撞判定
为什么IDEA连接mysql Unable to resolve table 编译报错但是可以运行
Flashback Technology of Oracle Database
eclipse连接数据库后插入数据报错null
In-depth analysis and use of Ribbon load balancing








