3 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
對(duì)于任何好奇的人,我做了一個(gè)非??焖俚幕鶞?zhǔn)測(cè)試:
const benchmarkMap = size => {
console.time('benchmarkMap');
var map = new Map();
for (var i = 0; i < size; i++) map.set(i, i);
for (var i = 0; i < size; i++) var x = map.get(i);
console.timeEnd('benchmarkMap');
}
const benchmarkObj = size => {
console.time('benchmarkObj');
var obj = {};
for (var i = 0; i < size; i++) obj[i] = i;
for (var i = 0; i < size; i++) var x = obj[i];
console.timeEnd('benchmarkObj');
}
var size = 1000000;
benchmarkMap(size);
benchmarkObj(size);
我運(yùn)行了幾次,結(jié)果如下:
(2017 MacBook Pro,2.5 GHz i7帶16G RAM)
benchmarkMap: 189.120ms
benchmarkObj: 44.214ms
benchmarkMap: 200.817ms
benchmarkObj: 38.963ms
benchmarkMap: 187.968ms
benchmarkObj: 41.633ms
benchmarkMap: 186.533ms
benchmarkObj: 35.850ms
benchmarkMap: 187.339ms
benchmarkObj: 44.515ms

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
所有O(1)算法也都是O(n),因此讓性能較低的規(guī)范實(shí)現(xiàn)不會(huì)造成任何危害。性能較差的實(shí)現(xiàn)可能在資源受限的系統(tǒng)中可能會(huì)引起一些關(guān)注,因?yàn)樗鼈兒芸赡苄枰俚拇a/空間。
添加回答
舉報(bào)