import {performance} from 'node:perf_hooks'; import {dealers} from '../shared/data.mjs'; import {filterDealers, DEFAULT_FILTERS} from './spatial.mjs'; const filters = {...DEFAULT_FILTERS, mode: 'radius', radiusKm: 150}; const cases = [dealers, Array.from({length: 1000}, (_, batch) => dealers.map(row => ({...row, id: `${batch}:${row.id}`}))).flat()]; const results = cases.map(rows => { for (let i = 0; i < 30; i++) filterDealers(rows, filters, null); const samples = []; let matched = 0; for (let i = 0; i < 200; i++) { const start = performance.now(); matched = filterDealers(rows, filters, null).length; samples.push(performance.now() - start); } samples.sort((a, b) => a - b); return {rows: rows.length, matched, samples: samples.length, warmups: 30, p50Ms: Number(samples[99].toFixed(4)), p95Ms: Number(samples[189].toFixed(4))}; }); console.log(JSON.stringify({measuredAt: new Date().toISOString(), node: process.version, platform: process.platform, architecture: process.arch, method: 'Pure WGS84 radius filter; 150 km around Atlanta. Repeated synthetic coordinates at 1000x size. No rendering, ArcGIS, service, network, cold-start or memory measurements.', results}, null, 2));