CNode

nodejs app memory leak

Qqpwang发布于14 年前最后回复14 年前4 回复6750 浏览0 收藏
最近被一个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)

T
tank00#1·14 年前

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

Q
qpwang#2·14 年前
引用 tank00Chrome的按键盘F12出现的dev工具吧

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

J
JacksonTian#3·14 年前

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

Q
qpwang#4·14 年前
引用 JacksonTianv8 profiler这个怎样,自己打快照。

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

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

参与回复
登录后即可参与回复。登录