我的Meteor应用程序,在服务器端(节点进程),使用的CPU比可接受的多得多,我想调查它。
两个并发客户端是领先节点,使用100%的CPU。 它可能与大量使用观察者有关,但我需要在更改整个应用程序之前进一步调查它。
那么,我可以用什么工具来分析它?怎么用?
答案 0 :(得分:4)
我找到的最佳解决方案是v8-profiler(加node-inspector)。
转到[Meteor installation folder]/dev_bundle/lib/node_modules
。
exec $ npm install v8-profiler
那里。
添加您的服务器代码:
Meteor.startup(function() {
profiler = __meteor_bootstrap__.require("v8-profiler")
Meteor._debug("Server started!");
});
您的应用服务器代码中的任何位置都可以通过以下方式进行分析:
profiler.startProfiling("name"); //begin cpu profiling
yourCode();
var cpuProfile = profiler.stopProfiling("name"); //finish cpu profiling
不要忘记运行node-inspector
答案 1 :(得分:3)
您还应该查看特定于流星的Observatory。它是一个功能强大的服务器端和客户端日志包,具有对任意函数的分析支持,以及“模板生命周期方法的自动记录,集合方法(目前仅支持查找)和订阅分析”。
答案 2 :(得分:3)
APM, Application Performance Monitoring,是由MeteorHacks成名的package开发的Meteor Arunoda Susiripala +云服务。它现在处于测试阶段,看起来非常有前景:
在Costly Calls选项卡中,您可以深入研究方法并识别那些花费时间最长的方法:
这1分钟的tutorial video只显示了这个identification of costly methods,这可能是你想要的。
答案 3 :(得分:2)
NodeTime是一个非常棒的分析服务。它是免费使用的,这在像你这样的情况下特别有用,而且非常容易设置!
答案 4 :(得分:2)
现在有了
console.time('myFunction');
myFunction();
console.timeEnd('myFunction')
//Outputs: myFunction: xxxxms
我刚刚验证它可以使用Meteor 1.2。超级简单,简单,内置。