【发布时间】:2014-07-18 09:31:59
【问题描述】:
我正在尝试在 NodeJS 中最大化我的 FLOPS,所以我想使用按位运算添加。
所以:
var a = 6, b = 12;
a + b
改为:
var add = function (a, b) {
var carry, result, shiftedcarry;
carry = a & b,
result = a ^ b;
while (carry !== 0) {
shiftedcarry = carry << 1;
carry = result & shiftedcarry;
result ^= shiftedcarry;
}
return result;
}
add(a, b);
但是,我发现这样的答案说,由于强制转换,Javascript 中的按位运算速度较慢。有没有办法绕过这个问题(比如使用 V8 扩展或其他东西)?
我如此专注于提高 FLOPS 的原因是因为我正在考虑在超级计算机上运行 NodeJS 实验。
【问题讨论】:
-
如果你担心这个,你可能不应该用 JavaScript 写这个。 V8 速度很快,但远非最佳。
-
这就是 V8 的 JIT 的用途。在大多数情况下,您不需要“优化”,而是需要避免去优化。这是一个可以帮助您入门的链接:github.com/petkaantonov/bluebird/wiki/Optimization-killers
-
我相信这是过早优化的情况。
标签: javascript node.js