7

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

两个同时的客户端正在引导节点使用 100% 的 CPU。这可能与观察者的大量使用有关,但我需要在更改整个应用程序之前对其进行进一步调查。

那么,我可以使用什么工具来分析它?如何使用它?

4

5 回答 5

4

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

安装

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

  2. 执行$ npm install v8-profiler那里。

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

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

于 2013-03-12T19:01:19.620 回答
3

您还应该看看 Meteor-specific Observatory。它是一个功能强大的服务器端和客户端日志记录包,具有对任意函数的分析支持,以及“模板生命周期方法、集合方法(目前仅支持查找)和订阅分析的自动记录”。

于 2012-11-15T18:36:42.430 回答
3

APM,Application Performance Monitoring ,是MeteorHacks的 Arunoda Susiripala 开发的 Meteor+云服务。它现在处于测试阶段,看起来很有希望:

来电

从 Costly Calls 选项卡中,您可以深入研究方法并确定那些耗时最长的方法:

截屏

这个 1 分钟的教程视频显示了这种昂贵方法的识别,这可能是你想要的。

更多截图

更多截图

于 2014-03-07T14:52:12.770 回答
2

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

于 2012-11-15T17:11:49.247 回答
2

现在有

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

我刚刚验证它可以使用 Meteor 1.2 工作。超级简单,容易和内置。

于 2015-12-10T09:39:59.980 回答