我写了一个Node.js应用(TCP网络服务,不是网站),CPU占用达到类似功能C语言程序的十多倍。
有什么工具可以看到CPU都消耗在什么地方呢?比如说,每个函数调用了多少次、花费多长时间,有多少setTimeout和setInterval等待运行。
我写了一个Node.js应用(TCP网络服务,不是网站),CPU占用达到类似功能C语言程序的十多倍。
有什么工具可以看到CPU都消耗在什么地方呢?比如说,每个函数调用了多少次、花费多长时间,有多少setTimeout和setInterval等待运行。
用console.log()
太暴力了,而且效率很低,需要用cpu profile去定位奥
参考Node.js 性能优化的基本方法与实战, 里面有完整的方法论与实战, 对你有用的话点个赞奥
pm2 可以满足到文件.. https://github.com/Unitech/pm2
至于要到函数的话,就要用的V8Profiler 了,不过这个有点难用...
http://code.google.com/p/v8/wiki/V8Profiler
参考一下这个吧... https://github.com/cnodejs/nodeclub/wiki/入门知识概览
5 回答4.9k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
5 回答2k 阅读
3 回答2k 阅读
4 回答957 阅读
1 回答3.3k 阅读
经过仔细检查,发现是程序内有死循环。调试的方法就是简单的插入
console.log
。其中的
var now = Date.now();
之前不慎写成var now = Date.now;
。Date.now
转换成数字是NaN
,造成now >= entry._expiry
永远是false
。而
setTimeout(fn,NaN)
等同于setTimeout(fn,0)
,导致程序死循环。