【问题标题】:What is the best practice in nodejs profiling?nodejs分析的最佳实践是什么?
【发布时间】:2014-09-29 12:45:44
【问题描述】:

我不想使用像 nodetime 这样的服务。我有小型中间件 nodejs 应用程序。现在我的应用程序以奇怪的方式使用 cpu http://s27.postimg.org/fgzmmh85f/cpu.png 所以我需要简单的工具来分析我的代码。我尝试使用 node --prof app.js 但 Chrome 开发工具没有打开生成的日志文件。

请提供工具以找出瓶颈。我也无法理解 v8 垃圾收集器的工作原理。

【问题讨论】:

    标签: node.js v8


    【解决方案1】:

    我不是节点专家,但一段时间以来我一直在尝试分析一些 JS 代码。这是我可以告诉你的:

    有两种分析方法,但都提供相同的数据。第一个是使用node -- 运行您的代码,这将生成一个isolate*.log 文件。您将此文件提供给node --prof-process,这将为您提供 smoe 输出,如果您有点幸运,您可以理解并采取行动。

    第二个差不多是这样的:

    var profiler = require('v8-profiler');
    profiler.startProfiling('carto');
    
    [your code here]
    
    var profile = profiler.stopProfiling('carto');
    profile.export(function(error, result) {
        fs.writeFileSync('carto.cpuprofile', result);
        profile.delete();
    })
    

    这将生成一个.cpuprofile,您可以将其加载到chromium 的JS Profiler 中。这可以在开发人员工具中找到,您可能必须在更多工具菜单中启用 Javascript Profiler。这将为您提供三种不同的方式来查看您在哪些功能上花费了时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多