我看到了一个关于v8优化的问题,这让我在v8优化方面发挥了一些作用.我也看过关于v8 优化杀手的蓝鸟帖子.
根据v8 repo,优化状态代码的乘法比为2:1,2,4,8等等(参见OptimizationStatus枚举)
但是,下面的代码给了我奇怪的状态代码,如17和65,并且仅在这些特定情况下(参见最后几行代码).有关为什么会发生这种情况的任何想法?
function adder(a, b) {
return new Function('a', 'b', 'return b%2 ? a + b : b%3 ? a - b : b%5 ? b / a : a * b')(a, b);
}
function addereval(a, b) {
return eval('b%2 ? a + b : b%3 ? a - b : b%5 ? b / a : a * b');
}
function printStatus(fn) {
var status = %GetOptimizationStatus(fn)
switch (status) {
case …Run Code Online (Sandbox Code Playgroud)