, 당신은 * (그 일을 기억하고 데이비드 Mandelin의 당신의 엔진을 알고 읽어야합니다 : 자바 스크립트 빠른 프레젠테이션을 만드는 방법 - PDF, 그는 더이 설명 세부 정보 *) :
인라인 할 수있는 모든 것.
함수 호출
개체 액세스가
다형성 당신에게 성능 비용이 수 비용이 매우 비싸, 당신의 변수와 인수는 항상 하나 개의 데이터 유형을 유지해야한다.
Math 객체는 특히 느린되지 않습니다,하지만 당신은 어쨌든 distance()
기능을 찾을 수 없습니다, 그리고 Math.method()
호출을 통해 폐쇄에서 메서드를 액세스하는 것은 비효율적이다.
그래서 sqrt
은 물론, 더 이상 x*x
, 가 당신을 위해 더 좋을 수도 사용자 정의 random
기능입니다, 파이는 min
, 루프에 캐시되어야하며 max
아마뿐만 아니라 삼각 함수와 로그 함수 속도에 대해 어떤 생각을 피해야한다 .
P.S : 당신은 ((x >= 0 ? x : -x) + 0.5) >> 0
같은 일을 할 수 Math.ceil(Math.abs())
을 대체하는 것이 아니라 기억 - 내가 "집중"말할 때 - 난 그런 재정 번호, 데이터 처리, 물리학, 그래픽과 것들에 대해 이야기하고있다. 정상적인 JavaScript 사이트 또는 RIA의 경우 - 은 일을해서는 안됩니다. 제가 여기 제안하고 있습니다. 또한, 대부분의 속도 해킹은 그들 side effects
출처
2012-01-16 20:07:19
c69
아마도'Math' 메소드는 자바 스크립트가 구현 된 언어 (예 : 일반적인 브라우저에서는 C 또는 C++)로 구현되므로 자바 스크립트로 작성할 수있는 것보다 훨씬 빠릅니다. –
** ** ** 성능의 차이점은 무엇입니까? 모든 대상 브라우저에서 사용할 수 있습니까? –
글쎄'수학 '은 "거리"방법을 가지고 있지 않으며, 그 정수 변환은 더 빨라질 수도 있지만'Math.floor()'또는'Math.round()'와 의미 상으로 다릅니다. [jsperf] (jsperf.com)를 사용하여 이런 종류의 것을 테스트 할 수 있습니다. – Pointy