0
적어도이 예제에서는 ECMAScript 6 Map이 개체를 사용하는 것보다 검색 속도가 느린 것 같습니다.Firefox 맵이 오브젝트보다 맵 속도가 느린 이유는 무엇입니까?
map = {};
var i=1000000;
console.time('populate');
while (i--) {
map[i] = 'value of '+i;
}
console.timeEnd('populate');
console.time('has');
var i=2000000;
var ctr = 0;
while (i--) {
if (map.hasOwnProperty(i)) {
ctr++;
}
}
console.timeEnd('has');
console.log(ctr)
map = new Map();
var i=1000000;
console.time('populate');
while (i--) {
map.set(i, 'value of '+i);
}
console.timeEnd('populate');
console.time('has');
var i=2000000;
var ctr = 0;
while (i--) {
if (map.has(i)) {
ctr++;
}
}
console.timeEnd('has');
console.log(ctr)
map = {};
var i=1000000;
console.time('populate');
while (i--) {
map[i] = 'value of '+i;
}
console.timeEnd('populate');
console.time('has');
var i=2000000;
var ctr = 0;
while (i--) {
if (map.hasOwnProperty(i)) {
ctr++;
}
}
console.timeEnd('has');
console.log(ctr)
출력은 다음과 같습니다 :
populate: timer started Maptest:16
populate: 465.51ms Maptest:20
has: timer started Maptest:22
has: 133.03ms Maptest:30
1000000 Maptest:31
populate: timer started Maptest:39
populate: 418.26ms Maptest:43
has: timer started Maptest:45
has: 414.44ms Maptest:53
1000000 Maptest:54
populate: timer started Maptest:60
populate: 347.55ms Maptest:64
has: timer started Maptest:66
has: 124.67ms Maptest:74
1000000
왜이 오브젝트 검사에 비해 4 배 속도가 느려질 수 확인 것이다 파이어 폭스에서 다음 코드를 사용하고 계십니까?