去年做过一个项目,需要每日对上千个Android内存泄漏(OOM)时core dump出的hprof文件进行分析,希望借助海量数据来快速定位内存泄漏的原因。最终的分析结果是一个类森林,因为时隔较远,只找到下面这个截图了。

大数据培训,云培训,数据挖掘培训,云计算培训,高端软件开发培训,项目经理培训

点击打开折叠的项目,会看到该类的每个属性,类有多少个实例,占用的大小等等信息,树的深度可以达到10^2级别。重点是项目需要实时,每个hprof文件解析出来的节点达到5w+,千万级节点已经由mapreduce进行过一次汇聚计算才出库,在展示时,依然需要一次实时计算,当点击项目时,需要快速将该类下所有的子孙节点占用的字节大小累加到该节点,因此对森林要有很高的查询效率

好的查询效率取决于好的存储机构,众所周知,多级目录树有如下三种存储方法,这里主要讲解这三种方式,并对其做了一些修改。这里使用同一个森林为模型(字母为节点名称,数字为节点权重)

大数据培训,云培训,数据挖掘培训,云计算培训,高端软件开发培训,项目经理培训

 

邻接列表

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式