我的应用程序遇到瓶颈,
Chrome 告诉问题是不支持的非原始比较
,我不确定我是否理解它的含义。
这是问题的确切代码(参见第 6 行)
for (var key in this.gdata) {
var rows = this.gdata[key];
for (var i = 0; i < rows.length; i++) {
if (i === 0) first[key] = rows[i];
if (rows[i].date > dt) {
curr[key] = i > 0 && rows[i - 1]; // <---- problem is here
next[key] = rows[i];
break;
}
}
}
这是一个屏幕截图,以防万一:
在这里我们可以更详细地看到瓶颈:
这段代码有什么问题?
最佳答案
Crankshaft 无法对此进行优化,因为它必须将 rows[i-1]
转换为 bool 值,并且它不知道如何在不进行去优化的情况下执行此操作。也许这会更好?
curr[key] = i > 0 ?行[i-1]:假;
关于javascript - Chrome 分析器上的 "Unsupported non-primitive compare",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40681455/