如何使用 Google Chrome 的 devtools 配置文件报告(cpuprofile 文件)计算自我和总时间

How Self & Total time is calculated having Google Chrome's devtools profile report (cpuprofile file)

我正在编写工具来从 cpuprofile 文件(保存配置文件报告时生成的文件)中解析和提取一些数据,但我在自我和总时间计算的精度方面遇到了一些麻烦。因此,时间取决于字段 hitCount 的值,但是。当 hitCount 较小 (<300) 时,hitCountSelf time 之间的系数约为 1.033。但是随着 hitCount 的增长,系数也会增长。 所以,当 hitCount=3585 时,k 为 1.057。当hitCount=7265时:k=1.066.

目前我使用 1.035 作为系数,我尽量减少样本数据的误差。但我对近似值不满意。我对 Chromium 代码库不熟悉,直接在源代码中弄明白。

那么如何获得具有 hitCount 值的函数调用的自我时间?

基本上是:

sampleDuration = totalRecordingDuration / totalHitCount
nodeSelfTime = nodeHitCount * sampleDuration

您可以在这里找到它: https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/devtools/front_end/sdk/CPUProfileDataModel.js&sq=package:chromium&type=cs&l=31