摘要: 一、Class类文件结构 Class文件是一组以8字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的地排列在文件之中,中间没有添加任何分隔符,这使得整个class文件中存储的内容几乎全部都是程序的必要的数据。当遇到需要占用8字节以上空间的数据项时,则会按照高位在前的方式分割成若干个8字节进行存 阅读全文
posted @ 2021-12-28 17:42 刘姥爷观园子 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 各类垃圾收集器整理 本文整理在Java虚拟机里面常用的垃圾收集器。上图中,如果俩个收集器之前有连线,就说明他们可以搭配使用,图中收集器所处的区域,则表示他是属于新生代收集器或者是老年代收集器。 一、Serial收集器 Serial收集器是最基础,历史最悠久的收集器,曾经在jdk(1.3.1之前)是h 阅读全文
posted @ 2021-12-24 23:17 刘姥爷观园子 阅读(272) 评论(0) 推荐(0) 编辑
摘要: HotSpot的算法细节实现 一、根节点枚举 迄今为止,所有收集器在根节点枚举这一步骤时都是必须暂停用户线程的,现在可达性分析算法耗时最长的查找引用链的过程已经可以和用户线程一起并发,但是根节点枚举始终还是必须在一个能保障一致性快照中才得以进行。 由于目前Java虚拟机使用的都是准确式垃圾收集,所有 阅读全文
posted @ 2021-10-31 18:16 刘姥爷观园子 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 内存垃圾收集算法 这里的内存主要指的堆和方法区的内存。 一、如何判断对象是否死亡 引用计数算法 在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,当引用失效时,计数器就减1,任何时刻计数器为零的对象就是不可能再被使用的。比较著名的应用案例有微软com技术、python语言等,但是在 阅读全文
posted @ 2021-10-31 17:05 刘姥爷观园子 阅读(44) 评论(0) 推荐(0) 编辑
摘要: HotSpot虚拟机在java堆中对象的分配、布局和访问过程 一、对象的创建 当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那么必须执行相应的类加载过程。 在类加载检查 阅读全文
posted @ 2021-10-30 22:59 刘姥爷观园子 阅读(85) 评论(0) 推荐(0) 编辑
摘要: Java虚拟机运行时的内存数据区域可分为: 方法区 堆 虚拟机栈 本地方法栈 程序计数器 其中堆和方法区由线程共享;虚拟机栈、本地方法区、程序计数器线程隔离的,即每个线程都有。 下面简单描述下上述的各个分区的职责和功能 一、程序计数器 程序计数器是一块较小的内存空间,在java虚拟机的概念模型里面, 阅读全文
posted @ 2021-10-30 19:21 刘姥爷观园子 阅读(36) 评论(0) 推荐(0) 编辑
摘要: Spark SQL(9)-Spark SQL JOIN操作源码总结 本文主要总结下spark sql join操作的实现,本文会根据spark sql 的源码来总结其具体的实现;大体流程还是从sql语句到逻辑算子树再到analyzed-> optimized -> 物理计划及其处理逻辑进行大致的总结 阅读全文
posted @ 2020-08-15 01:06 刘姥爷观园子 阅读(1156) 评论(0) 推荐(0) 编辑
摘要: Spark SQL(5-2) CacheManage之InMemoryRelation 本来计划中是没有这节的,但是中午在看spark sql 内存管理模块的时候,脑子里面突然问到,spark sql 缓存到内存的数据是怎么组织的;上网查了下博客;然后自己也跟了下代码,就形成了这篇总结。 接着之前提 阅读全文
posted @ 2020-07-30 18:15 刘姥爷观园子 阅读(369) 评论(0) 推荐(0) 编辑
摘要: Spark SQL(8)-Spark sql聚合操作(Aggregation) 之前简单总结了spark从sql到物理计划的整个流程,接下来就总结下Spark SQL中关于聚合的操作。 聚合操作的物理计划生成 首先从一条sql开始吧 SELECT NAME,COUNT(*) FRON PEOPLE 阅读全文
posted @ 2020-07-29 20:58 刘姥爷观园子 阅读(2434) 评论(0) 推荐(0) 编辑
摘要: Spark SQL(7)- physicalPlan 物理计划 spark的物理计划是将得到的逻辑算子树进一步的处理,得到针对RDD的一系列操作的集合,之后提交作业到spark集群。 spark物理计划的生成主要经历了一下的步骤: 应用sparkPlanner中定义的各种策略(strategy), 阅读全文
posted @ 2020-07-29 16:37 刘姥爷观园子 阅读(1023) 评论(0) 推荐(0) 编辑