并发Java
- 分类
- Java 并发
- 难度
- 未设置
- 来源数
- 1
- 更新时间
- 2026/03/29 01:13
答案
1. 栈上分配:当一个对象通过逃逸分析后认为没有发生逃逸,则可以对其进行栈上分配,继续在栈内存当中执行,这个对象就会随着方法执行结束,栈帧销毁而被回收,不会调用垃圾回收,因此性能提升。 2. 同步省略:同步省略即锁消除,在Java中,线程同步的代价是非常高的,频繁的加锁解锁会降低系统的性能,因此,如果经过逃逸分析,认为一个锁只被一个线程所使用,那么就会进行优化,取消这块同步代码,从而提升性能。 3. 标量替换:标量就是只不能再被分解的数据,在java当中,如果一个类经过逃逸分析认为没有发生逃逸,那么就可以将其分解为一个个的标量,从而省去在内存当中分配空间。
相关题目(5)
怎么查看和分析堆内存?共源 1
Java
CPU 满了怎么排查?共源 1
并发Java
哪些情况会发生栈溢出?共源 1
Java JVM并发Java
常用的 JVM 排查工具有哪些?共源 1
Java JVM并发Java
JVM 什么时候启动?共源 1
Java JVMJava
元信息
审核状态: active
关联来源: 1
来源面经题(0)
这道题目前没有手动沉淀的面经题来源。
来源(1)
Java八股(JVM).md
knowledge_noteQuestion 22: 逃逸分析能带来哪些优化?
Source answer: 1. 栈上分配:当一个对象通过逃逸分析后认为没有发生逃逸,则可以对其进行栈上分配,继续在栈内存当中执行,这个对象就会随着方法执行结束,栈帧销毁而被回收,不会调用垃圾回收,因此性能提升。 2. 同步省略:同步省略即锁消除,在Java中,线程同步的代价是非常高的,频繁的加锁解锁会降低系统的性能,因此,如果经过逃逸分析,认为一个锁只被一个线程所使用,那么就会进行优化,取消这块同步代码,从而提升性能。 3. 标量替换:标量就是只不能再被分解的数据,在java当中,如果一个类经过逃逸分析认为没有发生逃逸,那么就可以将其分解为一个个的标量,从而省去在内存当中分配空间。
Reviewed answer: 常见优化包括栈上分配、锁消除和标量替换。未逃逸对象可直接在栈上分配;若锁仅在单线程内使用可消除同步;对象也可被拆解为若干标量减少内存分配。