array-vs-set

  1. Array VS Set

Array VS Set

function benchmarkSetLookup(dataSize: number, lookupCount: number) {
    // 準備測試數據
    const testData = new Set<number>();
    for (let i = 0; i < dataSize; i++) {
        testData.add(i);
    }

    // 測試查詢速度
    const start = performance.now();
    for (let i = 0; i < lookupCount; i++) {
        testData.has(Math.floor(Math.random() * dataSize));
    }
    const end = performance.now();

    return end - start;
}

function benchmarkArrayLookup(dataSize: number, lookupCount: number) {
    // 準備測試數據
    const testData = Array.from({ length: dataSize }, (_, i) => i);

    // 測試查詢速度
    const start = performance.now();
    for (let i = 0; i < lookupCount; i++) {
        testData.includes(Math.floor(Math.random() * dataSize));
    }
    const end = performance.now();

    return end - start;
}

// 設定數據大小和查詢次數
const dataSize = 100000; // 例如 100,000 個元素
const lookupCount = 10000; // 例如 10,000 次查詢

// 進行基準測試
const setTime = benchmarkSetLookup(dataSize, lookupCount);
const arrayTime = benchmarkArrayLookup(dataSize, lookupCount);

console.log(`Set 查詢時間: ${setTime} 毫秒`);
console.log(`Array 查詢時間: ${arrayTime} 毫秒`);

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 kimfei2014@gmail.com
github