2014-07-18 2 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 답을 발견했다. 어쨌든이 문제를 우회 할 수 있습니까 (예 : V8 확장 프로그램 등)?

내 플로트를 늘리는 데 너무 집중하고있는 이유는 슈퍼 컴퓨터에서 NodeJS 실험을 실행하기 때문입니다.

+0

니스 이름 V8의 출력에 – LanguagesNamedAfterCofee

+2

을 찌를 할 수 있습니다 다이빙하려면 http://jsperf.com/add-optimization

:

나는 보여주기 위해 jspref 테스트를했다 자바 스크립트에서 이것을 작성해서는 안됩니다. V8은 빠르지 만 최적의 상태는 아닙니다. – FakeRainBrigand

+1

V8의 JIT가 그 것이다. 대부분의 경우 '최적화'할 필요는 없지만 최적화를 피할 필요가 있습니다. 여기에 당신을 시작할 수있는 링크가 있습니다 : https://github.com/petkaantonov/bluebird/wiki/Optimization-killers – generalhenry

답변

관련 문제