【问题标题】:Node with --prof option creating multiple log files instead of one v8.log带有 --prof 选项的节点创建多个日志文件而不是一个 v8.log
【发布时间】:2015-08-08 07:41:35
【问题描述】:

我正在尝试使用“--prof”选项来分析我的 Node 应用程序,但我看到创建的不是单个 v8.log 文件,而是创建了多个文件,其前缀为isolate-0x9582b40-v8.log、isolate-0xa1cab78- v8-6049.log,isolate-0xa7ffb40-v8.log,isolate-0xb5900468-v8.log,isolate-0xb6200468-v8-6049.log。

我无法使用 Linux-tick-processor 处理这些文件,因为我不知道要使用哪个文件进行处理。

我在 Vm VirtualBox 上使用以下配置 Ubuntu 12.4 Lts 运行。节点版本 0.12.0

uname -a 的输出

Linux ubuntu 3.8.0-44-generic #66~precise1-Ubuntu SMP Tue Jul 15 04:04:23 UTC 2014 i686 i686 i386 GNU/Linux

节点-v的输出

v0.12.0

【问题讨论】:

    标签: linux node.js ubuntu


    【解决方案1】:

    我从我发布的另一个问题中得到了答案

    从 node.js v0.12 或 io.js 1.0 开始,v8 日志记录现在是每个隔离的,因此文件名的格式为隔离--v8.log。 感谢@mscdex

    https://stackoverflow.com/a/30600851/644949

    【讨论】:

      【解决方案2】:

      我迟到了,但如果你像这样调用分析器:

      node --prof --no-logfile-per-isolate example.js
      

      您将获得一个名为v8.log 的文件。然后你可以做这样的事情:

      node --prof --no-logfile-per-isolate example.js && node --prof-process v8.log > example.v8log.txt
      

      注意:这将产生一个输出文件,因此如果您需要每个隔离文件,您可以使用--logfile 选项:

      node --prof --logfile=foo.log example.js
      

      这仍会将十六进制隔离标识符放在文件名中,但会附加您使用 --logfile 选项提供的值,从而生成如下所示的文件:isolate-0x103801e00-foo.logisolate-0x104000000-foo.log 等等。

      如果您不喜欢 v8.log 文件名,请结合使用 --logfile--no-logfile-per-isolate 选项:

      node --prof --logfile=foo.log --no-logfile-per-isolate example.js
      

      这将产生一个名为 foo.log 的文件。

      HTH。享受吧!

      --jsp

      【讨论】:

        猜你喜欢
        • 2015-08-16
        • 2012-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-11
        相关资源
        最近更新 更多