JavaScript의 얕은 복제: 배열 복제 기술의 성능 비교
JavaScript에서 배열을 처리할 때는 복사본을 생성하거나 중복. 이 작업에 일반적으로 사용되는 두 가지 방법은 슬라이스 방법과 전통적인 for 루프입니다. 하지만 어느 것이 더 빠를까요?
도전 과제: Slice 대 For 루프
slice 메서드는 표준 Array 객체의 일부이며 배열의 얕은 복사본을 생성합니다. 구조와 요소는 유지하지만 객체 참조를 깊게 복사하지는 않습니다.
반면에 for 루프는 간단한 접근 방식을 사용하여 반복합니다. 배열을 삭제하고 각 요소를 새 배열에 수동으로 복사합니다.
벤치마크 및 최적화
광범위한 벤치마크에 따르면 슬라이스 방법은 다음과 같은 브라우저에서 더 빠른 옵션임이 입증되었습니다. 크롬과 파이어폭스처럼요. 이는 슬라이스와 같은 내장 메소드에 대해 구현된 브라우저 최적화 때문입니다.
그러나 이러한 최적화 기능이 없는 다른 브라우저의 경우 for 루프 메소드가 더 빠를 수 있습니다. 이는 for 루프의 예측 가능한 구조가 브라우저 컴파일러가 최적화하기 더 쉽기 때문입니다.
구현 고려 사항
다음은 브라우저 콘솔에서 이러한 메서드를 테스트하기 위한 샘플 스크립트입니다. :
그동안 루프
n = 1000*1000; start = + new Date(); a = Array(n); b = Array(n); i = a.length; while(i--) b[i] = a[i]; console.log(new Date() - start);
슬라이스
n = 1000*1000; start = + new Date(); a = Array(n); b = a.slice(); console.log(new Date() - start);
결론
어떤 방법을 사용할지 선택 JavaScript의 배열 복제는 대상 브라우저에 따라 다릅니다. 슬라이스 방법을 최적화한 브라우저의 경우 이것이 더 빠른 옵션입니다. 다른 경우에는 for 루프가 더 나은 성능을 제공할 수 있습니다.
위 내용은 슬라이스 대 For 루프: JavaScript의 얕은 복제 배열에서 어느 것이 더 빠릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!