如何使用Meteor的剖析器?

时间:2012-11-15 16:51:32

标签: node.js profiling profiler meteor

我的Meteor应用程序,在服务器端(节点进程),使用的CPU比可接受的多得多,我想调查它。

两个并发客户端是领先节点,使用100%的CPU。 它可能与大量使用观察者有关,但我需要在更改整个应用程序之前进一步调查它。

那么,我可以用什么工具来分析它?怎么用?

5 个答案:

答案 0 :(得分:4)

我找到的最佳解决方案是v8-profiler(加node-inspector)。

安装

  1. 转到[Meteor installation folder]/dev_bundle/lib/node_modules

  2. exec $ npm install v8-profiler那里。

  3. 添加您的服务器代码:

  4. 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 +云服务。它现在处于测试阶段,看起来非常有前景:

calls

在Costly Calls选项卡中,您可以深入研究方法并识别那些花费时间最长的方法:

screenshot

这1分钟的tutorial video只显示了这个identification of costly methods,这可能是你想要的。

更多屏幕截图

more screenshots

答案 3 :(得分:2)

NodeTime是一个非常棒的分析服务。它是免费使用的,这在像你这样的情况下特别有用,而且非常容易设置!

答案 4 :(得分:2)

现在有了

console.time('myFunction'); myFunction(); console.timeEnd('myFunction') //Outputs: myFunction: xxxxms

我刚刚验证它可以使用Meteor 1.2。超级简单,简单,内置。