[컴][웹] js 의 bitwise 는 number operation 보다 느리다

javascript 의 bitwise 연산이 느린 이유 / 자바스크립트 비트 연산


js 의 bitwise 는 number operation 보다 느리다


보통 컴퓨터를 배운사람이라면 bitwise 연산이 일반적인 연산(곱하기, 나누기, 더하기 등) 보다는 훨씬 빠르다고 알고 있을것이다. 이것은 당연하게도 우리가 흔히 쓰는 일반적인 연산들을 CPU 에서는 bitwise 를 이용해서 흉내(?) 내고 있기 때문이다.

여하튼 그러나 js 에서는 이런 상식이 통하지 않는다. 일단 아래 페이지에서 결과를 확인하자.

결과를 보면 << (shift) 를 사용한 것 보단 *(곱하기) 를 사용한 것이 훨씬 빠른 속도를 보여준다. 이것은 js 가 parse 된 후 compile 돼서 js vm 이라 할 수 있는 javascript engine 에 의해 구동되기 때문이다.(ref. 1 을 참고하자.)

결국 그래서 이 엔진에서 bitwise 를 빠르게 동작하도록 구현했다면, 더 빠를 수도 있겠지만, 현재 chrome 에서는 그렇지 않은 듯 하다.  아직 잘 모르지만 추측컨데 WebAssembly 같은 곳에서는 bitwise 가 더 빠를 수 있을듯 하다.


References


  1. Making WebAssembly even faster: Firefox’s new streaming and tiering compiler

댓글 없음:

댓글 쓰기