gpt4 book ai didi

javascript - nodejs/V8 是否将编译后的机器代码存储在磁盘上的任何位置?

转载 作者:数据小太阳 更新时间:2023-10-29 04:23:20 24 4
gpt4 key购买 nike

编辑:自 Node 8.3 起,Node 使用字节码,在此之前,源代码直接编译为机器码。

我做了很多 Python 编码,.pyc 文件中总是有字节码。

我想知道 Node 是否将其机器代码存储在类似的文件中,例如,将机器代码表示形式保留在磁盘上并在文件源未更改的情况下重新使用它是否有意义。

如果是这样,node/v8 将机器代码存储在哪里?

编辑 2:正如@dystroy 在下面提到的,这是对 How can I see the machine code generated by v8? 的欺骗。

最佳答案

V8 在 2016 年引入了字节码解释器 Ignition。您可以使用 --print-bytecode (Node 8.3 和更新版本)打印字节码。

$ node --print-bytecode incrementX.js -e 'function incrementX(obj) {return 1 + obj.x;} incrementX({x: 42});`
...
[generating bytecode for function: incrementX]
Parameter count 2
Frame size 8
12 E> 0x2ddf8802cf6e @ StackCheck
19 S> 0x2ddf8802cf6f @ LdaSmi [1]
0x2ddf8802cf71 @ Star r0
34 E> 0x2ddf8802cf73 @ LdaNamedProperty a0, [0], [4]
28 E> 0x2ddf8802cf77 @ Add r0, [6]
36 S> 0x2ddf8802cf7a @ Return
Constant pool (size = 1)
0x2ddf8802cf21: [FixedArray] in OldSpace
- map = 0x2ddfb2d02309 <Map(HOLEY_ELEMENTS)>
- length: 1
0: 0x2ddf8db91611 <String[1]: x>
Handler Table (size = 16)

参见 Understanding V8's Bytecode .

要查看机器代码,请使用--print-opt-code --code-comments

关于javascript - nodejs/V8 是否将编译后的机器代码存储在磁盘上的任何位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16673515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com