nodejs app memory leak
发布于 12 年前 作者 qpwang 6055 次浏览 最后一次编辑是 8 年前
最近被一个memory leak的问题搞的很头大。 
app 一直在memory leak. 尝试着使用了一下node-inspector,  但是浏览器给我的界面上面就是没有profile这个tab, 坑爹啊。 然后又转向webkit-agent这个玩意儿, profiler的工具是有, 但是parse貌似永远也不结束, 还是看不到哪些对象吃掉了我的内存。 最后我用v8的native profiler,  用node --prof --log_snapshot_positions    xxx.js,  能够看到CPU的使用情况, 但是没法找到heap的snapshot。。。伤不起。 不知道有没高手知道别的口碑比较好的node debug工具。 

附上我的环境: 

ubunutu 12.04 + nodev0.6.18 

更新:

在heap空间比较小的时候, webkit-agent是一个不错的工具, 但是如果太大了, loading snapshot似乎永远也结束不了。

4 回复

Chrome的按键盘F12出现的dev工具吧

这个之能debug运行在chrome里面的js app, 对于运行于Node的js app这个不行。 v8 自己有一个profiler可以察看每个函数上面花了多少cpu ticks, 这个蛮有用。 不过 没有办法看heap的情况。

v8_profiler这个怎样,自己打快照。

你用过么, 如果能够把heap的snapshot弄出来还是很有价值的。 不过我的经验是, 这个和node-inspector集成在一起比较好用, 但是单独用起来比较麻烦; 而且这个打出来的快照人类不可读的。 现在node-inspector在我的机器上面就用不了。

这个工具应该都是对V8 引擎profiler的封装, 但是问题是, 我在运行node的时候用了log-snapshot-positions, 还是没法看到堆的信息, 只有CPU的使用信息。

回到顶部