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
相关产品推荐
相关产品推荐

