2014-07-18 61 views
-3

我試圖在NodeJS中最大化我的FLOPS,所以我想添加使用按位操作。在Javascript中添加(NodeJS)

所以:

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); 

然而,我發現SO答案提到位運算,由於鑄造是在Javascript速度較慢。無論如何繞過這個問題(就像V8擴展或什麼的)?

我非常專注於增加FLOPS的原因是因爲我正在考慮在超級計算機上運行NodeJS實驗。

+0

尼斯的用戶名... – LanguagesNamedAfterCofee

+2

如果你擔心這個,你可能不應該用JavaScript寫這個。 V8速度很快,但離最佳狀態還很遠。 – FakeRainBrigand

+1

這就是V8的JIT的用途。在大多數情況下,您不需要「優化」,而是需要避免去優化。這裏有一個鏈接,可以讓你開始:https://github.com/petkaantonov/bluebird/wiki/Optimization-killers – generalhenry

回答