首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >哪些诊断工具可用于Node.js应用程序?

哪些诊断工具可用于Node.js应用程序?
EN

Stack Overflow用户
提问于 2015-06-14 21:19:08
回答 1查看 683关注 0票数 2

有很多工具,哪些诊断工具有利于诊断node.js应用程序的内存泄漏问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-15 04:53:45

是的,IDDE不仅是一个强大的工具,不仅用于内存泄漏检测,而且还用于确定各种Node.js错误行为,包括崩溃和挂起。

以下是概述、安装和新信息的链接:https://www.ibm.com/developerworks/java/jdk/tools/idde

  1. 我将从node概括命令开始。请注意,每个命令都以bang (!)开头。由于原因,每个命令都使用一个控件(ctrl+enter)输入。

!nodeoverview {

堆和垃圾收集

内存分配器,使用: 981 MB,可用: 482 MB GC计数: 144

这显示了堆的占用率。

  1. 然后,使用jsmeminfo来计算堆中占主导地位的驻留对象。 !jsmeminfo { 内存分配程序,使用: 981 MB,可用: 482 MB总堆对象: 21559924 最大5个堆对象类型大小(字节)更多信息

0x000000de06d319 FIXED_ARRAY_TYPE 131112!数组0x000000de06d319 0x000000de0ac6d9 FIXED_ARRAY_TYPE 98360!数组0x0000000000de0ac6d9 0x0000000000e90e2f09 ASCII_STRING_TYPE 48152!字符串0x00000000e90e90e90e9035099 ASCII_STRING_TYPE 48088!字符串0x000000e9035099 0x000000e5099 0x000000000000e9004101 ASCII_STRING_TYPE 40936!

最频繁的5种对象类型频率

JS_OBJECT_TYPE 15371393 FIXED_ARRAY_TYPE 6175379 ASCII_INTERNALIZED_STRING_TYPE 3476 BYTE_ARRAY_TYPE 1572 JS_FUNCTION_TYPE 1434

}

  1. 根据这些信息检查应用程序,并看到它们是否保持了所显示的内存是否合理。
  2. 如果要进一步“剖析”对象以查看内容,请使用对象扩展命令(如!jsobject或!array): !数组0x000000de06d319{ 数组类型: FIXED_ARRAY_TYPE Len : 16387显示前100个元素仅显示0: 0xd9400000000 (SMI) 1: 0x3fe00000000 (SMI) 2:0x4000000000 (SMI) 3: 0x9a1103d1 (ASCII_INTERNALIZED_STRING_TYPE:!print 0x000000009A1103D1 )4: 0x9a1042a9 (ASCII_INTERNALIZED_STRING_TYPE:!print 0x00000000A1042A9).}
  3. 如果您想根据对象的内部类型将整个堆“分隔”成各个部分,用户jsgroupobjects。当您在不同的时间间隔进行多个转储,并希望比较哪些对象随时间增长时,这更有用。 !jsgroupobjects { 表示对象地址对象类型Num对象构造器Num属性属性

!jsobject 0x00000000c8244fd1 JS_OBJECT_TYPE 6133503对象0

!jsobject 0x000000c8004161 JS_OBJECT_TYPE 6133499数据库0

!jsobject 0x00000000c8004101 JS_OBJECT_TYPE 3066750 MyRecord 0

!jsobject 0x00000000c869b111 JS_OBJECT_TYPE 37302对象0

!jsobject 0x000000de05b959 JS_FUNCTION_TYPE 542 0

!jsobject 0x00000000de04bcc1 JS_FUNCTION_TYPE 267 0

!jsobject 0x000000de04a09 JS_FUNCTION_TYPE 251 0

!jsobject 0x00000000de04a911 JS_FUNCTION_TYPE 227 0

!jsobject 0x000000de0a48c9 JS_ARRAY_TYPE 190阵列0

!jsobject 0x000000de04a7e9 JS_FUNCTION_TYPE 102 0

!jsobject 0x00000000de04e379 JS_ARRAY_TYPE 34阵列0

!jsobject 0x00000000de050db1 JS_OBJECT_TYPE 30对象0

!jsobject 0x00000000c2938151 JS_REGEXP_TYPE 18 RegExp 0

!jsobject 0x00000000c2955a11 JS_OBJECT_TYPE 15 NativeModule 0

!jsobject 0x00000000c2944519 JS_OBJECT_TYPE 11对象0

!jsobject 0x00003abc 617bee71 JS_OBJECT_TYPE 102 CallSite 3接收器,有趣,pos

  1. 如果要检查单个对象,请对对象地址执行jsobject操作。 !jsobject 0x00003abc 617bee71{ 对象具有快速的属性--描述符数:3 名称值更多信息

接收机0x0000251abe506c91

乐趣0x00003abc 617bb241 pos 0x00001dfd00000000 SMI = 0x1dfd

}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30834656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档