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