Hotspot学习
文章平均质量分 92
lqp276
The devil is in the details
展开
-
[Java JVM] Hotspot GC研究- 64位引用指针压缩技术
为什么需要指针压缩在上一篇文章 [Java JVM] Hotspot GC研究- 开篇&对象内存布局 中介绍对象内存布局时, 曾提到过, 由于在64位CPU下, 指针的宽度是64位的, 而实际的heap区域远远用不到这么大的内存, 使用64bit来存对象引用会造成浪费, 所以应该做点事情来节省资源. 如何做基于以下事实:CPU 使用的虚拟地址是64位的, 访问内存时, 必须使用64位的指针访问内原创 2016-08-17 15:19:17 · 7293 阅读 · 4 评论 -
[Java JVM] Hotspot GC研究- 什么是GC Root
GC RootGC Root全称是garbage collection root, 即垃圾回收的根. 回到我们的葡萄比喻上来, 也就是一串葡萄的柄. 实际上JVM中的GC Root不只一个, 也就是多个这样的 “柄”. 来看看hotspot网站的解释: garbage collection root A pointer into the Java object heap from ou原创 2016-08-27 15:17:38 · 1965 阅读 · 1 评论 -
[Java JVM] Hotspot GC研究- 开篇&对象内存布局
Hotspot简介Hotspot是openjdk的JVM虚拟机, linux发行版下默认安装的是openjdk, 而oracle 的jdk也基本是由openjdk代码编译而来, 外加上一些商业代码, 形成orcale的jdk. 由此可见, hotspot的无处不在. 现在越来越多的应用构建在java之上, 大数据的很多项目, 如Hbase, Hive, flume等等, 都可运行在hotspot之上原创 2016-08-12 12:00:56 · 3076 阅读 · 4 评论 -
[Java JVM] Hotspot GC研究- GC安全点 (Safepoint&Stop The World)
什么是safepoint引用openjdk官网的一段话: A point during program execution at which all GC roots are known and all heap object contents are consistent. From a global point of view, all threads must block at a saf原创 2016-08-19 11:56:31 · 6621 阅读 · 1 评论 -
[Java JVM] Hotspot GC研究- 探寻GC代码前的最后准备, GC的维度和分类
关于GC的几个维度吞吐量(Throughput), 简而言之就是花在GC之外的时间(干 ‘正事’的时间)和程序整体运行时间的比值. 举写代码为例, 一位连续编码7天, 需要花1天时间来休息的程序员, 相比于编码1天就要休息1天的程序员来说, 显然前者的吞吐量更大.停顿时间(Pause Time), GC执行的时候有可能需要打断应用执行, 比如GC安全点, 对应用来说就是被冻住了, 不能响应. 所原创 2016-09-03 14:19:14 · 516 阅读 · 0 评论 -
[Java JVM] Hotspot GC研究- 串行GC(Serial GC)实现解析
Serial GC 介绍串行GC是hotspot中最简单的一种GC, 不过麻雀虽小, 五脏俱全. 除了速度相较其他几种GC比较慢之外, 完成的功能是一样的: 回收不再使用的对象, 为新的对象分配空间. 从简单的情况下手, 我们可以撇去很多边边角角的细节, 从而更好的接近事物的本质, 对于研究GC, 道理也是如此.Serial GC 的内存分布Serial GC的heap采用的是分代分布, 默认情况下原创 2016-09-07 15:05:19 · 1222 阅读 · 0 评论