去年做過一個(gè)項(xiàng)目,需要每日對(duì)上千個(gè)Android內(nèi)存泄漏(OOM)時(shí)core dump出的hprof文件進(jìn)行分析,希望借助海量數(shù)據(jù)來快速定位內(nèi)存泄漏的原因。最終的分析結(jié)果是一個(gè)類森林,因?yàn)闀r(shí)隔較遠(yuǎn),只找到下面這個(gè)截圖了。

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

點(diǎn)擊打開折疊的項(xiàng)目,會(huì)看到該類的每個(gè)屬性,類有多少個(gè)實(shí)例,占用的大小等等信息,樹的深度可以達(dá)到10^2級(jí)別。重點(diǎn)是項(xiàng)目需要實(shí)時(shí),每個(gè)hprof文件解析出來的節(jié)點(diǎn)達(dá)到5w+,千萬級(jí)節(jié)點(diǎn)已經(jīng)由mapreduce進(jìn)行過一次匯聚計(jì)算才出庫,在展示時(shí),依然需要一次實(shí)時(shí)計(jì)算,當(dāng)點(diǎn)擊項(xiàng)目時(shí),需要快速將該類下所有的子孫節(jié)點(diǎn)占用的字節(jié)大小累加到該節(jié)點(diǎn),因此對(duì)森林要有很高的查詢效率。

好的查詢效率取決于好的存儲(chǔ)機(jī)構(gòu),眾所周知,多級(jí)目錄樹有如下三種存儲(chǔ)方法,這里主要講解這三種方式,并對(duì)其做了一些修改。這里使用同一個(gè)森林為模型(字母為節(jié)點(diǎn)名稱,數(shù)字為節(jié)點(diǎn)權(quán)重)

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

 

鄰接列表

網(wǎng)友評(píng)論