nodejs app memory leak
最近被一个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的使用信息。