gpt4 book ai didi

javascript - 在node.js中运行的js文件中的%GetOptimizationStatus函数是什么

转载 作者:太空宇宙 更新时间:2023-11-04 00:33:58 24 4
gpt4 key购买 nike

我正在阅读this article关于优化技术,有以下代码:

//Function that contains the pattern to be inspected (using an `eval` statement)
function exampleFunction() {
return 3;
eval('');
}

function printStatus(fn) {
switch(%GetOptimizationStatus(fn)) {
case 1: console.log("Function is optimized"); break;
case 2: console.log("Function is not optimized"); break;
case 3: console.log("Function is always optimized"); break;
case 4: console.log("Function is never optimized"); break;
case 6: console.log("Function is maybe deoptimized"); break;
case 7: console.log("Function is optimized by TurboFan"); break;
default: console.log("Unknown optimization status"); break;
}
}

//Fill type-info
exampleFunction();
// 2 calls are needed to go from uninitialized -> pre-monomorphic -> monomorphic
exampleFunction();

%OptimizeFunctionOnNextCall(exampleFunction);
//The next call
exampleFunction();

//Check
printStatus(exampleFunction);

我有两个问题:

  • 函数%GetOptimizationStatus%OptimizeFunctionOnNextCall从未被定义,它们从何而来?

  • 这句话是什么意思2 calls are needed to go from uninitialized -> pre-monomorphic -> monomorphic

最佳答案

当设置指定的优化标志时,

%GetOptimizationStatus%OptimizeFunctionOnNextCall 被注入(inject)到 Node 中。

单态部分基本上是说优化器在检测到多用途之前不会启动,.. 在激活 TurboFan 后。

IOW:如果您查看输出,您会注意到它调用了 exampleFunction 两次(禁用优化),并且只有在第三次尝试时 TurboFan 才会启动。

关于javascript - 在node.js中运行的js文件中的%GetOptimizationStatus函数是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39917108/

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