node.js - 处理node.js分析时 "Code move event for unknown code"是什么意思?

标签 node.js profiling v8

在 Node ( 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

此“未知代码的代码移动事件”错误表示什么?是否有补救措施可以在我的分析调查中提供更多详细信息?

最佳答案

简而言之:这意味着有些事情很奇怪,并且(可能)您无能为力:-(

使用--prof生成的日志文件除其他外还包含三种相关类型的条目:

(1) “在地址 A 创建的函数 F 的代码对象,大小为 S”

(2)“代码对象从地址A1移动到地址A2”

(3)“执行样本是在地址E处获取的”

tick 处理器使用类型 (1) 和 (2) 的条目来构建与函数对应的代码对象的映射,因此当它看到类型 (3) 的条目时,它会查找正确的函数,使得 A < = E && E <= A+S 然后报告该函数已收到分析器标记。

当数据不一致时,日志文件可能包含地址 A1 处假定代码对象的移动事件(类型 (2) 的条目),而该代码对象在类型 (1) 的条目中从未提及) 前。在这种情况下,刻度处理器不知道该怎么做,因此它会打印一条警告。

您认为这与看到许多未计算的蜱虫有某种关系的猜测很可能是正确的。

您可以尝试的一种解决方法(可能有帮助,也可能没有帮助)是指定 --nocompact-code-space 以及 --prof。这不应该是必要的,但是你也不应该获得未知代码的移动事件......

关于node.js - 处理node.js分析时 "Code move event for unknown code"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58121115/

相关文章:

android - 我无法在 android 中构建我的项目

node.js - 为 MongoDB 中的对象数组建立索引

.net - .Net 中的 Google V8 Javascript 引擎?

javascript - 为什么这个 V8/Javascript 代码表现如此糟糕?

javascript - Node 和 Chrome (V8) block 范围内的 const

javascript - 将 async/await 与 forEach 循环一起使用

javascript - 我如何在angularjs中的服务的两个功能之间传递数据

WPF PathGeometry 渲染

php - 记录 mysql 结果和计时

php - 使用结果缓存和不使用结果缓存来计时我的 php 函数