我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript 堆内存分析新工具OneHeap怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript 堆内存分析新工具OneHeap怎么用

这篇文章给大家介绍JavaScript 堆内存分析新工具OneHeap怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

OneHeap 关注于运行中的 JavaScript 内存信息的展示,用可视化的方式还原了 HeapGraph,有助于理解 v8 内存管理。

JavaScript 运行过程中的大部分数据都保存在堆 (Heap) 中,所以 JavaScript 性能分析另一个比较重要的方面是内存,也就是堆的分析。

利用 Chrome Dev Tools 可以生成应用程序某个时刻的堆快照 (HeapSnapshot),它较完整地记录了各种对象和引用的情况,堪称查找内存泄露问题的神器。 和 Profile 结果一样,快照可以被导出成 .heapsnapshot 文件。

JavaScript 堆内存分析新工具OneHeap怎么用

上周发布了工具 OneProfile , 可以用来动态地展示 Profile 的结果,分析各种函数的调用关系。周末我用类似的思路研究了一下 .heapsnapshot 文件,做了这个网页小工具,把 Heap Snapshot 用有向图的方式展现出来。

JavaScript 堆内存分析新工具OneHeap怎么用

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 属性。

关于JavaScript 堆内存分析新工具OneHeap怎么用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript 堆内存分析新工具OneHeap怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C++内存管理工具primitives怎么用

本篇内容主要讲解“C++内存管理工具primitives怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++内存管理工具primitives怎么用”吧!primitives分配释放属于是否
2023-07-02

linux数据分析工具怎么用

这篇文章主要介绍“linux数据分析工具怎么用”,在日常操作中,相信很多人在linux数据分析工具怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux数据分析工具怎么用”的疑惑有所帮助!接下来,请跟
2023-06-30

Android性能分析工具TraceView怎么用

要使用TraceView进行Android性能分析,可以按照以下步骤进行操作:在Android Studio中打开项目,并确保已经连接到要分析的设备或模拟器。在项目的代码中选择要进行性能分析的方法或代码段,插入以下代码:Debug.star
2023-10-23

Android内存泄漏检测工具LeakCanary怎么使用

这篇“Android内存泄漏检测工具LeakCanary怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android
2023-07-06

Java线程Dump分析工具jstack怎么用

这篇文章主要为大家展示了“Java线程Dump分析工具jstack怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java线程Dump分析工具jstack怎么用”这篇文章吧。jstack用于
2023-05-30

java dump文件分析工具怎么使用

Java dump文件是Java虚拟机在运行过程中生成的一种文件,用于记录Java虚拟机的内存使用情况、线程状态等信息。分析Java dump文件可以帮助定位和解决Java应用程序的性能问题和内存泄漏等问题。以下是使用常见的Java dum
2023-09-13

PB级数据分析工具Prestodb怎么用

这篇文章给大家介绍PB级数据分析工具Prestodb怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。什么是prestodbprestodb,是facebook开源的一款sql on hadoop系统,是facebo
2023-06-19

UAVStack中JVM监控分析工具怎么用

这篇文章主要为大家展示了“UAVStack中JVM监控分析工具怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“UAVStack中JVM监控分析工具怎么用”这篇文章吧。引言作为AllInOne
2023-06-04

Linux系统IO分析工具iotop怎么用

这篇文章给大家分享的是有关Linux系统IO分析工具iotop怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。iotop是linux系统下测试硬盘IO读写的工具,简单的说,iotop是一个用来监视磁盘I/O使
2023-06-27

Linux系统下分析内存使用情况的管理工具有哪些

这篇文章将为大家详细讲解有关Linux系统下分析内存使用情况的管理工具有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。有许多办法可以获得Linux系统上所安装内存的信息,并查看其中有多少
2023-06-05

JDK自带JVM内存检测工具jconsole怎么使用

要使用jconsole来监视JVM内存,您可以按照以下步骤操作:打开终端或命令提示符,并导航到JDK的`bin`目录(例如,`C:\Program Files\Java\jdk1.8.0_221\bin`)。运行命令`jconsole`来启
2023-10-24

Kubernetes应用性能分析工具Kubectl Flame怎么用

这期内容当中小编将会给大家带来有关Kubernetes应用性能分析工具Kubectl Flame怎么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。什么是性能分析?性能分析是分析应用程序性能来改进代码质量
2023-06-15

怎么用python分析游戏内存数据

要使用Python分析游戏内存数据,你需要了解以下几个步骤:安装所需的模块:首先,你需要安装一些用于分析游戏内存数据的Python模块,如`pywin32`、`psutil`和`struct`。你可以使用pip命令安装这些模块,例如:`pi
2023-10-26

Paddle模型性能分析工具Profiler怎么使用

本篇内容介绍了“Paddle模型性能分析工具Profiler怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Paddle模型性能分析P
2023-07-05

MyBatis的SQL语句性能分析工具怎么使用

MyBatis的SQL语句性能分析工具可以帮助开发人员查看和分析SQL语句的性能,以找出潜在的性能问题并进行优化。要使用MyBatis的SQL语句性能分析工具,可以按照以下步骤操作:在MyBatis的配置文件(如mybatis-config
MyBatis的SQL语句性能分析工具怎么使用
2024-05-08

编程热搜

目录