[Javascript] 집합과 배열의 성능
6432 단어 setarrayjavascript
개체의 속성 값이 겹겹이 쌓이고 있는 부분을 짚고, 내가 생태학적으로 연구할 수 있다.
lodash 의
_.uniq()
로 Array에서 중복 값 제외 리뷰할 수 있는 동료분께서 중복값을 확인하려면 설정을 써도 되지 않을 수도 있습니다. Set 을 안쓰고 측면 기억 저편에 있었다😅
설정을 사용하는 경우 논리:
배열과 가장 큰 차이는 중복값을 확인하는 코드가 필요없다는 것!!!
PCB 문득 어레이와 세트의 성능이 떨어져서 차이가 나지 않게 되었습니다.
배열을 사용하는 경우:
let isDuplicate: boolean = false;
const names: string[] = [];
console.time('use Array');
_.forEach(result, (item) => {
names.push(item.name);
});
if (result.length !== _.uniq(names).length) {
isDuplicate = true;
}
console.timeEnd('use Array');
설정을 사용하는 경우:
let isDuplicate: boolean = false;
const names: Set<string[]> = new Set();
console.time('use Set');
_.forEach(result, (item) => {
names.add(item.name);
});
if (result.length !== names.size) {
isDuplicate = true;
}
console.timeEnd('use Set');
데이터의 수가 100개 미만인 지금 상황과 같은 경우, Set이 배열보다 약 0.01ms 정도 빨랐다.
현재의 코드는 거의 차이가 없는 것이 이긴다.
라면 데이터가 1k, 10k 보수라면?
정렬
세트
1k
10k
10만
1,000개까지는 눈에 띄지 않지만, 10만개 이상의 많은 데이터 경우에는 38ms 정도 차이가 난다. 이 땐, 세트를 사용하는 것이 퍼포먼스 측면으로는 더 나아지고 볼 수 있습니다.
❗️이건 어레이의
push + lodash _.uniq() + Array.length
Set의 add + Set.size
조합을 비교한 경우이기 때문에,데이터 삭제, 인덱스 추출 등 Array와 Set의 퍼포먼스는 각각 다를 수 있다.
현재 해당 기능의 로직상 10만 개 이상 데이터가 옅은 경우는 거의 없지만, 코드의 가독성 측면에서 세트를 사용하는 게 더 낫고 결론이 났었습니다.😌😌
잊고 있던 세트를 다시 말했다고, Array와 세트를 오래도록 작성하기 위해 이번 코드 리뷰를 작성했다. 매일 학습 축제와 성장할 기회가 정상은 개발자라는 내 직업이 너무 행복함을 다시 한 번 채워줍니다🥰
Reference
이 문제에 관하여([Javascript] 집합과 배열의 성능), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nily/javascript-performance-of-set-and-array-7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)