Jac*_*cob 3 profiling v8 node.js
在节点 ( v10.15.3) 中,我一直在分析,node --prof <script>然后用 总结输出node --prof-process <output>。生成的摘要中有很多未计算的滴答声,在运行第二步时,这些滴答声可能与大量错误有关,类似于以下内容:
...
Code move event for unknown code: 0x3663777f8b98
Code move event for unknown code: 0x3663777f9018
Code move event for unknown code: 0x3663777f9790
Code move event for unknown code: 0x36635f5fb5a8
Code move event for unknown code: 0x3663777f9b78
Code move event for unknown code: 0x3663777f9d00
Code move event for unknown code: 0x3663777fa150
Code move event for unknown code: 0x3663777fa7f8
Code move event for unknown code: 0x36635f5fe630
Run Code Online (Sandbox Code Playgroud)
这个“未知代码的代码移动事件”错误意味着什么?是否有补救措施可以在我的分析调查中为我提供更多详细信息?
简而言之:这意味着有些事情很奇怪,并且(可能)您对此无能为力:-(
生成的日志文件--prof包含三种相关类型的条目等:
(1) “在地址 A 创建的函数 F 的代码对象,大小为 S”
(2)“代码对象从地址A1移动到地址A2”
(3)“执行样本取自地址E”
滴答处理器使用类型 (1) 和 (2) 的条目来构建对应于函数的代码对象映射,因此当它看到类型 (3) 的条目时,它会寻找正确的函数,使得 A <= E && E <= A+S 然后将该函数报告为已收到分析器滴答。
当有关数据的某些内容不一致时,可能会发生日志文件包含地址 A1 处的假定代码对象的移动事件(类型 (2) 的条目),该事件之前从未在类型 (1) 的条目中提及。在这种情况下,滴答处理器不知道该怎么做,所以它会打印一个警告。
你的猜测很可能是正确的,这与看到许多未计算的滴答声有某种关系。
您可以尝试的一种解决方法(可能有帮助也可能无济于事)是--nocompact-code-space与--prof. 那不应该是必要的,但是您也不应该为未知代码获取这些移动事件......
| 归档时间: |
|
| 查看次数: |
797 次 |
| 最近记录: |