Skip to content

Instantly share code, notes, and snippets.

@guillaumefalvet
Created April 17, 2025 11:07
Show Gist options
  • Select an option

  • Save guillaumefalvet/3e3d0f5878d608b549f5ce7be818b339 to your computer and use it in GitHub Desktop.

Select an option

Save guillaumefalvet/3e3d0f5878d608b549f5ce7be818b339 to your computer and use it in GitHub Desktop.
benchmark
import { performance } from 'perf_hooks';
const ITERATIONS = 10_000_000;
const TEST_KEY = '5000000'; // Middle key for lookup/delete operations
// Benchmark Record
const record: Record<string, number> = {};
let start = performance.now();
for (let i = 0; i < ITERATIONS; i++) {
record[i.toString()] = i;
}
console.log(`Record insertion: ${(performance.now() - start).toFixed(2)} ms`);
start = performance.now();
const recordLookup = record[TEST_KEY];
console.log(`Record lookup: ${(performance.now() - start).toFixed(2)} ms (Value: ${recordLookup})`);
start = performance.now();
delete record[TEST_KEY];
console.log(`Record deletion: ${(performance.now() - start).toFixed(2)} ms`);
// Benchmark Map
const map = new Map<string, number>();
start = performance.now();
for (let i = 0; i < ITERATIONS; i++) {
map.set(i.toString(), i);
}
console.log(`Map insertion: ${(performance.now() - start).toFixed(2)} ms`);
start = performance.now();
const mapLookup = map.get(TEST_KEY);
console.log(`Map lookup: ${(performance.now() - start).toFixed(2)} ms (Value: ${mapLookup})`);
start = performance.now();
map.delete(TEST_KEY);
console.log(`Map deletion: ${(performance.now() - start).toFixed(2)} ms`);
// Benchmark Array
const array: [string, number][] = [];
start = performance.now();
for (let i = 0; i < ITERATIONS; i++) {
array.push([i.toString(), i]);
}
console.log(`Array insertion: ${(performance.now() - start).toFixed(2)} ms`);
start = performance.now();
const arrayLookup = array.find(([key]) => key === TEST_KEY)?.[1];
console.log(`Array lookup: ${(performance.now() - start).toFixed(2)} ms (Value: ${arrayLookup})`);
start = performance.now();
const index = array.findIndex(([key]) => key === TEST_KEY);
if (index !== -1) array.splice(index, 1);
console.log(`Array deletion: ${(performance.now() - start).toFixed(2)} ms`);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment