script.createCachedData()
- 返回: <Buffer>
创建可与 Script
构造函数的 cachedData
选项一起使用的代码缓存。
返回 Buffer
。
此方法可以随时调用任意次数。
Script
的代码缓存不包含任何 JavaScript 可观察状态。
代码缓存可以安全地与脚本源一起保存,并用于多次构造新的 Script
实例。
Script
源代码中的函数可以标记为延迟编译,并且在构建 Script
时不会编译它们。
这些函数将在第一次调用时被编译。
代码缓存序列化 V8 目前知道的关于 Script
的元数据,它可以用来加速未来的编译。
const script = new vm.Script(`
function add(a, b) {
return a + b;
}
const x = add(1, 2);
`);
const cacheWithoutAdd = script.createCachedData();
// In `cacheWithoutAdd` the function `add()` is marked for full compilation
// upon invocation.
script.runInThisContext();
const cacheWithAdd = script.createCachedData();
// `cacheWithAdd` 包含完全编译的函数 `add()`。
- Returns: <Buffer>
Creates a code cache that can be used with the Script
constructor's
cachedData
option. Returns a Buffer
. This method may be called at any
time and any number of times.
The code cache of the Script
doesn't contain any JavaScript observable
states. The code cache is safe to be saved along side the script source and
used to construct new Script
instances multiple times.
Functions in the Script
source can be marked as lazily compiled and they are
not compiled at construction of the Script
. These functions are going to be
compiled when they are invoked the first time. The code cache serializes the
metadata that V8 currently knows about the Script
that it can use to speed up
future compilations.
const script = new vm.Script(`
function add(a, b) {
return a + b;
}
const x = add(1, 2);
`);
const cacheWithoutAdd = script.createCachedData();
// In `cacheWithoutAdd` the function `add()` is marked for full compilation
// upon invocation.
script.runInThisContext();
const cacheWithAdd = script.createCachedData();
// `cacheWithAdd` contains fully compiled function `add()`.