摘要: 使用逃逸分析-进行代码优化 使用逃逸分析,编译器可以对代码做如下优化: 一、栈上分配。将堆分配转化为栈分配。如果一个对象在子程序中被分配,要使指向该对象的指针永远不会逃逸,对象可能是栈分配的候选,而不是堆分配。 JIT编译器在编译期间根据逃逸分析的结果,发现如果一个对象并没有逃逸出方法的话,就可能被 阅读全文
posted @ 2020-09-10 22:31 宇枫 阅读(1638) 评论(1) 推荐(1) 编辑
摘要: 在《深入理解Java虚拟机》中关于Java堆内存有这样一段描述: 随着JIT编译期的发展与逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化,所有的对象都分配到堆上也渐渐变得不那么“绝对”了。 在Java虚拟机中,对象是在Java堆中分配内存的,这是一个普遍的常识。但是,有一种特 阅读全文
posted @ 2020-09-10 21:46 宇枫 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 对于HotSpotVM来说,Gc按照回收区域又分为两大种类型:一种是部分收集(Partial Gc),一种是整堆收集(Full GC) 部分收集:不是完整收集整个Java堆的垃圾收集。其中又分为: 新生代收集(Minor GC / Young GC):只是新生代的垃圾收集 老年代收集(Najor G 阅读全文
posted @ 2020-09-10 20:53 宇枫 阅读(750) 评论(0) 推荐(0) 编辑