배열에 항목을 추가 할 수있는 4 가지 방법 사이의 성능 비교 :
인덱서를 사용하여 추가하십시오
코드 사본은 다음과 같습니다.
Console.Time ( "색인");
var a = [];
for (var i = 0, l = times; i <l; i ++) {
a [i] = i;
}
Console.TimeEnd ( "색인");
푸시 방법을 사용하십시오
코드 사본은 다음과 같습니다.
Console.Time ( "푸시");
var a = [];
for (var i = 0, l = times; i <l; i ++) {
a.push (i);
}
Console.TimeEnd ( "푸시");
CONCAT 방법을 사용하십시오
코드 사본은 다음과 같습니다.
Console.Time ( "CONCAT");
var a = [];
for (var i = 0, l = times; i <l; i ++) {
A.concat (i);
}
Console.TimeEnd ( "concat");
CONCAT 메소드를 사용하면 매개 변수가 배열입니다
코드 사본은 다음과 같습니다.
Console.Time ( "배열에 대한 동의");
var a = [];
for (var i = 0, l = times; i <l; i ++) {
A.concat ([i]);
}
Console.TimeEnd ( "배열과 관련하여");
시간을 1 억 번으로 설정 :
코드 사본은 다음과 같습니다.
색인 : 0.310ms
푸시 : 1.476ms
동의 : 8.911ms
배열과 관련하여 : 2.261ms
시간을 100,000 (100,000)으로 설정하십시오.
코드 사본은 다음과 같습니다.
색인 : 1.967ms
푸시 : 11.980ms
동의 : 70.410ms
배열과 관련하여 : 28.292ms
시간을 1000000 (백만)으로 설정하십시오.
코드 사본은 다음과 같습니다.
색인 : 138.559ms
푸시 : 93.074ms
연결 : 608.768ms
배열과 관련하여 : 243.371ms
시간을 100,000 (천만)으로 설정하십시오.
코드 사본은 다음과 같습니다.
색인 : 1473.733ms
푸시 : 611.636ms
concat : 6058.528ms
배열과 관련하여 : 2431.689ms
요약
이 결론은 Chrome 브라우저에서만 유용합니다
CONCAT 메소드의 실행 효율은 가장 느립니다.
허용 된 매개 변수가 배열 일 때, 두 개의 연결 방법의 인수 전송과 비교할 때, 실행 효율은 허용 된 매개 변수보다 비 돌발로서 더 높다.
대부분의 경우 인덱서의 실행 효율은 푸시 방법의 실행 효율보다 높습니다.
실행 수가 증가하면 인덱서의 실행 효율이 푸시 방법의 실행 효율보다 나빠지기 시작합니다.
브라우저 비교
경험이 부족하다는 것을 지적한 네티즌 덕분에 브라우저 간의 수평 비교는 다음과 같습니다.
먼저 CONCAT 메소드를 사용하십시오. IE 및 Firefox에서는 매개 변수가 배열이고 실행 효율은 다른 매개 변수보다 어레이가 아닌 것보다 느리지 만 차이는 크지 않습니다.
그런 다음 인덱스와 푸시 방법이 Concat보다 빠릅니다. IE에서 인덱스 방법을 사용하는 것은 항상 푸시보다 빠릅니다. Firefox에서는 푸시가 약간 더 좋지만 차이는 크지 않습니다.
3 개의 브라우저 사이의 인덱스 및 푸시 방법의 실행 효율과 비교하여, Firefox의 실행 효율은 IE 및 Chrome의 실행 효율보다 훨씬 높습니다. 백만 번, 그것은 기본적으로 10 배 더 빠릅니다. 나는 다른 두 사람에 비해 가장 느린 것입니다.
다음은 수백만의 결과입니다.
코드 사본은 다음과 같습니다.
// Firefox
인덱스 : 타이머가 시작되었습니다
색인 : 229.79ms
푸시 : 타이머가 시작되었습니다
푸시 : 205.12ms
CONCAT : 타이머가 시작되었습니다
연결 : 2136.99ms
배열과 관련하여 : 타이머가 시작되었습니다
배열과 관련하여 : 2365.18ms
```
코드 사본은 다음과 같습니다.
// 즉
색인 : 2,533.744 밀리 초
푸시 : 3,865.979 밀리 초
동의 : 4,303.139 밀리 초
배열과 관련하여 : 4,792.208 밀리 초
이 기사는 JS의 성능을 탐색하는 것입니다. 그것은 비교를 통해 친구들의 JavaScript에 대한 이해를 심화시킬 것입니다. 나는 당신이 그것을 좋아할 수 있기를 바랍니다.