成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JavaScript 堆內存分析新工具 OneHeap

開發 前端
OneHeap 關注于運行中的 JavaScript 內存信息的展示,用可視化的方式還原了 HeapGraph,有助于理解 v8 內存管理。

OneHeap 關注于運行中的 JavaScript 內存信息的展示,用可視化的方式還原了 HeapGraph,有助于理解 v8 內存管理。

JavaScript 運行過程中的大部分數據都保存在堆 (Heap) 中,所以 JavaScript 性能分析另一個比較重要的方面是內存,也就是堆的分析。

利用 Chrome Dev Tools 可以生成應用程序某個時刻的堆快照 (HeapSnapshot),它較完整地記錄了各種對象和引用的情況,堪稱查找內存泄露問題的神器。 和 Profile 結果一樣,快照可以被導出成 .heapsnapshot 文件。

heapsnapshot

上周發布了工具 OneProfile , 可以用來動態地展示 Profile 的結果,分析各種函數的調用關系。周末我用類似的思路研究了一下 .heapsnapshot 文件,做了這個網頁小工具,把 Heap Snapshot 用有向圖的方式展現出來。

screenshot

OneHeap 名字的由來

There are only two hard things in Computer Science: cache invalidation and naming things. -- Phil Karlton

目前還沒有時間想一個高端、大氣、上檔次的名字,因為我供職的公司名叫 OneAPM ( 省去軟廣1000字,總之做性能監控很牛),所以就取名 OneHeap 啦。 它是 Toolkit 里的第二個。

如何生成 Heap Snapshot 文件

使用 Chrome 打開 測試頁面 按 F12 打開 Devtools,切換到 Profiles 頁,選擇 Take Heap Snapshot。稍等片刻,在生成的 Snapshot 上點擊右鍵可以導出,文件后綴一般是 .heapsnapshot。

Node.JS

如果你是 Node.JS 工程師,可以安裝 heapdump 這個很有名的模塊。

https://github.com/bnoordhuis/node-heapdump

上面兩種方法都可以生成 .heapsnapshot 文件,這個是用來測試的 nodejs.heapsnapshot

理解 .heapsnapshot 文件格式

打開測試用的 nodejs.heapsnapshot 文件,這是一個很大的 JSON 對象:

snapshot 屬性保存了關于快照的一些基本信息,如 uid,快照名,節點個數等

nodes 保存了是所有節點的 id,name,大小信息等,對應 v8 源碼里的 HeapGraphNode

edges 屬性保存了節點間的映射關系,對應 v8 源碼的 HeapGraphEdge

strings 保存了所有的字符串, nodes 和 edges 中不會直接存字符串,而是存了字符串在 strings 中的索引

堆快照其實是一個有向圖的數據結構,但是 .heapsnapshot 文件在存儲的過程中使用了數組來存儲圖的結構,這一設計十分巧妙而且減少了所需磁盤空間的大小。

nodes 屬性

nodes 是一個很長一維的數組,但是為了閱讀方便,v8 在序列化的時候會自動加上換行。按照 v8 版本的不同,可能是5個一行,也可能是6個一行,如果是 6 個一行,則多出來的一個 trace_node_id 屬性。

 

責任編輯:王雪燕 來源: 唯愛社區
相關推薦

2011-03-01 16:08:46

2009-09-14 10:01:35

EGLJavaScriptIBM

2018-04-17 14:41:41

Java堆內存溢出

2022-12-26 14:41:38

Linux內存

2019-02-26 14:33:22

JVM內存虛擬機

2021-12-09 08:56:15

微軟開源分析工具

2017-01-11 14:02:32

JVM源碼內存

2014-07-03 09:39:34

Java內存分析mat工具

2019-12-09 08:00:00

GraphQLAPI架構

2013-07-23 06:47:55

Android內存機制Android堆和棧Android開發學習

2009-03-12 16:18:14

Visual StudEclipseSilverlight

2011-10-26 09:06:54

Windows管理工具

2013-10-31 17:29:57

Firefox新工具

2020-04-16 16:34:10

戴爾攻擊BIOS

2009-06-08 14:54:11

產品綜合布線福祿克

2024-07-02 11:32:38

2011-07-19 10:43:10

Small Basic

2023-11-01 08:07:42

.NETC#

2020-05-09 13:49:00

內存空間垃圾
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 97影院在线午夜 | 草草视频在线观看 | 人人草人人干 | 日韩在线视频一区 | 国产精品久久久久久二区 | 久久久久久久久久久久久久国产 | 在线日韩欧美 | 婷婷成人在线 | 日韩一区二区在线视频 | 蜜臀久久 | 欧美人妇做爰xxxⅹ性高电影 | 99精品国产一区二区青青牛奶 | 亚洲人人 | 久久免费看 | 欧美精品v国产精品v日韩精品 | 国产视频综合 | 日本中文字幕日韩精品免费 | 国产一区二区三区四区在线观看 | 精品中文字幕一区 | 99re视频精品| 国产日韩一区二区三免费高清 | 中文在线观看视频 | 中文字幕 国产 | 国产在线观看一区二区 | 国产粉嫩尤物极品99综合精品 | 亭亭五月激情 | 91国产在线视频在线 | 日韩成人 | 精品视频一区二区三区四区 | 男女视频在线观看 | 人人插人人 | 日本黄色影片在线观看 | 337p日本欧洲亚洲大胆 | 99精品99久久久久久宅男 | 精品欧美一区二区中文字幕视频 | 欧美日韩国产在线 | 久久久精| 国产精品无码久久久久 | 国产精品久久久久久高潮 | 精品日韩 | 日韩a v在线免费观看 |