You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js内置Profiler出现高占比Unaccounted问题求助

Node.js内置性能分析器(Profiler)出现大量Unaccounted Ticks问题

尝试用Node.js内置Profiler分析应用时,绝大多数ticks被标记为Unaccounted。已查阅旧的相关问题并尝试多种常规方案,但情况未改善。已知Node.js与d8 shell存在差异,但未完全理解。由于相关旧帖可能过时,希望找到新的解决办法。

环境与操作步骤

  • 操作系统:Windows 11
  • Node.js版本:22.5.1
  • 使用命令:
    node --prof prova.js
    node --prof-process isolate-0x28a76f7d000-13900-v8.log > processedLog.txt
    
  • Node.js安装方式:通过MinGW64和Msys2安装

待分析代码(prova.js)

console.log('menz')
let a = []
for (let i = 0; i < 8; i++) a.push(i)
console.log(a)

处理后的分析日志

Statistical profiling result from isolate-0x28a76f7d000-13900-v8.log, (19 ticks, 18 unaccounted, 0 excluded).

 [Shared libraries]:
   ticks  total  nonlib   name

 [JavaScript]:
   ticks  total  nonlib   name
      1    5.3%    5.3%  Builtin: Call_ReceiverIsNotNullOrUndefined

 [C++]:
   ticks  total  nonlib   name

 [Summary]:
   ticks  total  nonlib   name
      1    5.3%    5.3%  JavaScript
      0    0.0%    0.0%  C++
      0    0.0%    0.0%  GC
      0    0.0%          Shared libraries
     18   94.7%          Unaccounted

 [C++ entry points]:
   ticks    cpp   total   name

 [Bottom up (heavy) profile]:
  Note: percentage shows a share of a particular caller in the total
  amount of its parent calls.
  Callers occupying less than 1.0% are not shown.

   ticks parent  name
     18   94.7%  UNKNOWN
      7   38.9%    JS: ^compileForInternalLoader node:internal/bootstrap/realm:384:27
      7  100.0%      JS: ^requireBuiltin node:internal/bootstrap/realm:421:24
      1   14.3%        JS: ~getTranslators node:internal/modules/esm/loader:74:24
      1  100.0%          JS: ~ModuleLoader node:internal/modules/esm/loader:108:20
      1  100.0%            JS: ~ModuleLoader node:internal/modules/esm/loader:147:14
      1   14.3%        JS: ~<anonymous> node:tty:1:1
      1  100.0%          JS: ^compileForInternalLoader node:internal/bootstrap/realm:384:27
      1  100.0%            JS: ^requireBuiltin node:internal/bootstrap/realm:421:24
      1   14.3%        JS: ~<anonymous> node:internal/webstreams/util:1:1
      1  100.0%          JS: ^compileForInternalLoader node:internal/bootstrap/realm:384:27
      1  100.0%            JS: ^requireBuiltin node:internal/bootstrap/realm:421:24
      1   14.3%        JS: ~<anonymous> node:internal/url:1:1
      1  100.0%          JS: ~compileForInternalLoader node:internal/bootstrap/realm:384:27
      1  100.0%            JS: ~requireBuiltin node:internal/bootstrap/realm:421:24
      1   14.3%        JS: ~<anonymous> node:internal/streams/duplex:1:1
      1  100.0%          JS: ^compileForInternalLoader node:internal/bootstrap/realm:384:27
      1  100.0%            JS: ^requireBuiltin node:internal/bootstrap/realm:421:24
      1   14.3%        JS: ~<anonymous> node:internal/fs/promises:1:1
      1  100.0%          JS: ^compileForInternalLoader node:internal/bootstrap/realm:384:27
      1  100.0%            JS: ^requireBuiltin node:internal/bootstrap/realm:421:24
      1   14.3%        JS: ~<anonymous> node:internal/blob:1:1
      1  100.0%          JS: ^compileForInternalLoader node:internal/bootstrap/realm:384:27
      1  100.0%            JS: ^requireBuiltin node:internal/bootstrap/realm:421:24
      3   16.7%    JS: ~compileForInternalLoader node:internal/bootstrap/realm:384:27
      3  100.0%      JS: ~requireBuiltin node:internal/bootstrap/realm:421:24
      2   66.7%        JS: ~<anonymous> node:internal/bootstrap/node:1:1
      1   33.3%        JS: ~<anonymous> node:internal/timers:1:1
      1  100.0%          JS: ~compileForInternalLoader node:internal/bootstrap/realm:384:27
      1  100.0%            JS: ~requireBuiltin node:internal/bootstrap/realm:421:24
      1    5.6%    JS: ~setupDebugEnv node:internal/process/pre_execution:455:23
      1  100.0%      JS: ~prepareExecution node:internal/process/pre_execution:99:26
      1  100.0%        JS: ~prepareMainThreadExecution node:internal/process/pre_execution:55:36
      1  100.0%          JS: ~<anonymous> node:internal/main/run_main_module:1:1
      1    5.6%    JS: ~makeNodeErrorWithCode node:internal/errors:428:31
      1  100.0%      JS: ~E node:internal/errors:549:11
      1  100.0%        JS: ~<anonymous> node:internal/errors:1:1
      1  100.0%          JS: ~compileForInternalLoader node:internal/bootstrap/realm:384:27
      1  100.0%            JS: ~requireBuiltin node:internal/bootstrap/realm:421:24
      1    5.6%    JS: ~afterWriteDispatched node:internal/stream_base_commons:156:30
      1  100.0%      JS: ~writeGeneric node:internal/stream_base_commons:148:22
      1  100.0%        JS: ~Socket._writeGeneric node:net:921:42
      1  100.0%          JS: ~Socket._write node:net:963:35
      1  100.0%            JS: ~writeOrBuffer node:internal/streams/writable:546:23
      1    5.6%    JS: ~<anonymous> node:internal/net:1:1
      1  100.0%      JS: ^compileForInternalLoader node:internal/bootstrap/realm:384:27
      1  100.0%        JS: ^requireBuiltin node:internal/bootstrap/realm:421:24
      1  100.0%          JS: ~<anonymous> node:internal/dns/utils:1:1
      1  100.0%            JS: ^compileForInternalLoader node:internal/bootstrap/realm:384:27

      1    5.3%  Builtin: Call_ReceiverIsNotNullOrUndefined
      1  100.0%    JS: ^copyPrototype node:internal/per_context/primordials:121:23
      1  100.0%      JS: ^<anonymous> node:internal/per_context/primordials:224:11
      1  100.0%        Builtin: ArrayForEach
      1  100.0%          JS: ~<anonymous> node:internal/per_context/primordials:1:1

已尝试的解决方案

  • 升级Node.js至最新稳定版(当前为22.5.1)
  • 调整tick周期参数
  • 禁用V8优化执行
  • 查阅旧帖中关于Node.js与d8 shell差异的内容,但未完全理解

内容的提问来源于stack exchange,提问作者Gabriele Passoni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 05:32:03