V8:隔离与嵌入的 blob 不兼容
V8 : Isolate is incompatible with the embedded blob
我正在尝试从某个 Javascript 文件创建自定义快照。我能够使用命令
创建快照
mksnapshot.exe snapshot11.js --startup_blob snap.bin
但是当我试图用这个 snap.bin 文件创建一个 Isolate 时,我收到了这条消息
The Isolate is incompatible with the embedded blob. This is usually caused by incorrect usage of mksnapshot. When generating custom snapshots, embedders must ensure they pass the same flags as during the V8 build process (e.g.: --turbo-instruction-scheduling).
我猜我需要使用正确的标志重新创建快照,但我找不到我需要使用的标志。
我的args.gn
is_component_build=true
v8_static_library=false
is_official_build=false
is_debug=true
use_custom_libcxx=false
use_custom_libcxx_for_host=false
target_cpu="x64"
use_goma=false
v8_use_external_startup_data=false
v8_enable_i18n_support = false
symbol_level=2
v8_enable_fast_mksnapshot=true
任何线索都会有所帮助。
10 倍
您可以调用 ninja
和 -v
来让它打印它执行的所有命令;例如如果你编译 V8:
ninja -v -C out/... v8_monolith
然后您会在输出中找到 mksnapshot
调用的一行,并且可以从那里复制标志。 (如果你已经编译了 V8,ninja 会说 "nothing to do";在这种情况下你可以清除所有内容,或者只删除 snapshot_blob.bin
和 libv8_monolith.so
。)
我正在尝试从某个 Javascript 文件创建自定义快照。我能够使用命令
创建快照
mksnapshot.exe snapshot11.js --startup_blob snap.bin
但是当我试图用这个 snap.bin 文件创建一个 Isolate 时,我收到了这条消息
The Isolate is incompatible with the embedded blob. This is usually caused by incorrect usage of mksnapshot. When generating custom snapshots, embedders must ensure they pass the same flags as during the V8 build process (e.g.: --turbo-instruction-scheduling).
我猜我需要使用正确的标志重新创建快照,但我找不到我需要使用的标志。
我的args.gn
is_component_build=true
v8_static_library=false
is_official_build=false
is_debug=true
use_custom_libcxx=false
use_custom_libcxx_for_host=false
target_cpu="x64"
use_goma=false
v8_use_external_startup_data=false
v8_enable_i18n_support = false
symbol_level=2
v8_enable_fast_mksnapshot=true
任何线索都会有所帮助。
10 倍
您可以调用 ninja
和 -v
来让它打印它执行的所有命令;例如如果你编译 V8:
ninja -v -C out/... v8_monolith
然后您会在输出中找到 mksnapshot
调用的一行,并且可以从那里复制标志。 (如果你已经编译了 V8,ninja 会说 "nothing to do";在这种情况下你可以清除所有内容,或者只删除 snapshot_blob.bin
和 libv8_monolith.so
。)