andrewiggins / v8-deopt-viewer

View deoptimizations of your JavaScript in V8

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compatible Node JS Versions / How to use this tool

hediet opened this issue · comments

I'm getting tons of errors for unknown ic codes:

v8-deopt-parser - Error parsing V8 log file: line 45285: parse: unknown ic code state: 66
Error: parse: unknown ic code state: 66
    at parseIcState (file:///C:/Users/hdieterichs/AppData/Local/npm-cache/_npx/bff88035e4613431/node_modules/v8-deopt-parser/src/propertyICParsers.js:51:10)
    at DeoptLogReader.LogReader.dispatchLogRow_ (file:///C:/Users/hdieterichs/AppData/Local/npm-cache/_npx/bff88035e4613431/node_modules/v8-deopt-parser/src/v8-tools-core/logreader.js:206:25)
    at DeoptLogReader.LogReader.processLogLine_ (file:///C:/Users/hdieterichs/AppData/Local/npm-cache/_npx/bff88035e4613431/node_modules/v8-deopt-parser/src/v8-tools-core/logreader.js:243:12)
    at DeoptLogReader.LogReader.processLog_ (file:///C:/Users/hdieterichs/AppData/Local/npm-cache/_npx/bff88035e4613431/node_modules/v8-deopt-parser/src/v8-tools-core/logreader.js:229:10)
    at DeoptLogReader.LogReader.processLogChunk (file:///C:/Users/hdieterichs/AppData/Local/npm-cache/_npx/bff88035e4613431/node_modules/v8-deopt-parser/src/v8-tools-core/logreader.js:106:8)
    at parseV8Log (file:///C:/Users/hdieterichs/AppData/Local/npm-cache/_npx/bff88035e4613431/node_modules/v8-deopt-parser/src/index.js:12:12)
    at run (file:///C:/Users/hdieterichs/AppData/Local/npm-cache/_npx/bff88035e4613431/node_modules/v8-deopt-viewer/src/index.js:114:29)

I used node-v18.12.1-win-x64 with --prof --log-ic --no-logfile-per-isolate --log-maps to generate this log:
v8.zip

However, it doesn't show any deoptimizations or inline cache information:
image

How can I use this tool to see the deoptimizations?

Thanks!

Hmm seems v8 has changed some things such that code deopts are no longer logged using those flags. I don't see any occurrences of code-deopt in your log file and I'm struggling to generate them. Perhaps there is another flag we need to pass to Node/V8 to tell it to log deopts?

It looks like it does not support node 20 as well (now that node 16 is EOL it's important more than ever)