JavaScript 에서 익명, 명명 함수 의 성능 테스트
쉽게 말 하면 익명 즉 이름 이 없 는 함 수 는 일반적으로 즉시 실행 된다.그러나 그것 과 명명 함수 (이름 이 있 는 함수) 의 성능 은 어 떻 습 니까?
우 리 는 Shell 명령 을 실행 할 수 있 는 컴퓨터 를 찾 아서 대량의 함수 호출 을 통 해 두 사람의 실행 소모 시간 을 볼 수 있 습 니 다.
anonymous.js
var count = 100000000
, sum = 0
while (count--) (function() { sum++ })()
실행 해 봐.
$ time node anonymous.js
real 0m1.456s
user 0m0.015s
sys 0m0.031s
이름 함수 다시 보기
named.js
var count = 100000000
, sum = 0
var cb = function() {
sum++
}
while (count--) cb()
실행 해 봐.
$ time node named.js
real 0m0.575s
user 0m0.000s
sys 0m0.046s
명명 함수 가 훨씬 빠 를 텐 데 왜 그 럴 까요?사실 설명 하기 어렵 지 않 습 니 다. 익명 함 수 는 매번 리 셋 을 재해 석 해 야 합 니 다. 그러나 명명 함 수 는 한 번 만 해석 해 야 하기 때문에 성능 이 향상 되 지만 테스트 결과 이러한 향상 은 매우 미세 하 며 매우 순 조로 운 리 셋 을 따로 다른 변수 로 쓸 필요 가 없습니다.
또한 명명 함수 에는 두 가지 쓰기 가 있 습 니 다.
함수 식
var func = function() {
console.log('a')
}
함수 선언
function func() {
console.log('b')
}
사실 이 두 개 를 같이 쓰 면 문제 가 있 을 수 있 습 니 다.
var func = function() {
console.log('a')
}
function func() {
console.log('b')
}
// : a
따라서 현재 함수 표현 식 형식 을 많이 사용 하지만 함수 성명 의 성능 은 어 떻 습 니까?
named2.js
var count = 100000000
, sum = 0
function cb() {
sum++
}
while (count--) cb()
실행 하고 두 가 지 를 비교 하 다.
$ time node named.js
real 0m0.553s
user 0m0.000s
sys 0m0.015s
$ time node named2.js
real 0m0.529s
user 0m0.000s
sys 0m0.047s
함수 성명 이 조금 빠 를 것 같 지만 매우 빠 르 고 뚜렷 하지 않 습 니 다. 개인 적 으로 함수 성명 식 작성 을 권장 합 니 다.
PS: 이 데 이 터 는 모두 윈도 7 에서 git - base 테스트 를 사용 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.