成人免费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

2018-04-17 14:41:41

Java堆內存溢出

2009-09-14 10:01:35

EGLJavaScriptIBM

2022-12-26 14:41:38

Linux內存

2019-02-26 14:33:22

JVM內存虛擬機

2021-12-09 08:56:15

微軟開源分析工具

2014-07-03 09:39:34

Java內存分析mat工具

2017-01-11 14:02:32

JVM源碼內存

2019-12-09 08:00:00

GraphQLAPI架構

2013-07-23 06:47:55

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

2009-03-12 16:18:14

Visual StudEclipseSilverlight

2009-06-08 14:54:11

產品綜合布線福祿克

2020-04-16 16:34:10

戴爾攻擊BIOS

2024-07-02 11:32:38

2011-07-19 10:43:10

Small Basic

2013-10-31 17:29:57

Firefox新工具

2011-10-26 09:06:54

Windows管理工具

2023-02-10 09:28:23

優化工具

2023-11-01 08:07:42

.NETC#
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲乱码一区二区三区在线观看 | 久久久久久国产精品免费免费狐狸 | 国产成人综合网 | 一级毛片在线播放 | 爱草在线 | 国产一区二区三区四区五区加勒比 | 国产精品视频在 | 精品久久精品 | 天天操天天拍 | 成人精品国产一区二区4080 | 精品国产一区二区三区性色av | 久久久久国产一区二区三区四区 | 久久久久免费精品国产小说色大师 | 日韩成人免费视频 | 综合九九 | 精品国产伦一区二区三区观看说明 | 免费激情 | 欧美日韩成人一区二区 | 日韩在线欧美 | 亚洲国产成人精品久久 | 成人免费在线播放视频 | 国产精品视频入口 | 中文一区二区 | 综合色在线 | 伊人网综合在线 | 久久久久亚洲精品中文字幕 | 亚洲激情视频在线 | 亚洲欧美综合精品久久成人 | 91在线色视频 | 亚洲激情av | 欧美在线一区二区三区 | 亚洲日产精品 | 日韩高清一区 | 97人澡人人添人人爽欧美 | 国产日韩欧美精品一区二区 | 亚洲视频中文字幕 | 日韩精品 | 欧美日韩在线视频观看 | 久久久女 | 亚洲国产一区二区三区四区 | 中国免费黄色片 |