Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Compare nums-and-localecompare-1
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36
Browser:
Chrome 121
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
num
2413830.5 Ops/sec
bigint always
696710.4 Ops/sec
bigint maybe one
782765.8 Ops/sec
bigint maybe both not big
793125.4 Ops/sec
bigint maybe both big
764543.6 Ops/sec
Tests:
native num
const arr = [ '{ "index": 7332422033298424650 }', '{ "index": 7332422033298424651 }', '{ "index": 7332422033298424652 }', '{ "index": 7332422033298424653 }', '{ "index": 7332422033298424654 }', '{ "index": 7332422033298424655 }', ] for (let i = 0; i < arr.length; i++) { arr[i] = JSON.parse(arr[i]) } arr.sort((a, b) => a.index > b.index)
all big
const arr = [ '{ "index": 7332422033298424650 }', '{ "index": 7332422033298424651 }', '{ "index": 7332422033298424652 }', '{ "index": 7332422033298424653 }', '{ "index": 7332422033298424654 }', '{ "index": 7332422033298424655 }', ] for (let i = 0; i < arr.length; i++) { arr[i] = JSON.parse(arr[i], (key, value) => (key === 'index' ? BigInt(value) : value)) } arr.sort((a, b) => a.index > b.index)
all big smart
const arr = [ '{ "index": 7332422033298424650 }', '{ "index": 7332422033298424651 }', '{ "index": 7332422033298424652 }', '{ "index": 7332422033298424653 }', '{ "index": 7332422033298424654 }', '{ "index": 7332422033298424655 }', ] let isBigInt = undefined for (let i = 0; i < arr.length; i++) { if (i > 0) { arr[i] = isBigInt ? JSON.parse(arr[i], (key, value) => (key !== 'index' ? value : BigInt(value))) : JSON.parse(arr[i]) continue } arr[i] = JSON.parse(arr[i], (key, value) => { if (key === 'index' && (isBigInt = !Number.isSafeInteger(value))) return BigInt(value) return value }) } arr.sort((a, b) => a.index > b.index)
all small smart
const arr = [ '{ "index": 733242200 }', '{ "index": 733242201 }', '{ "index": 733242202 }', '{ "index": 733242203 }', '{ "index": 733242204 }', '{ "index": 733242205 }', ] let isBigInt = undefined for (let i = 0; i < arr.length; i++) { if (i > 0) { arr[i] = isBigInt ? JSON.parse(arr[i], (key, value) => (key !== 'index' ? value : BigInt(value))) : JSON.parse(arr[i]) continue } arr[i] = JSON.parse(arr[i], (key, value) => { if (key === 'index' && (isBigInt = !Number.isSafeInteger(value))) return BigInt(value) return value }) } arr.sort((a, b) => a.index < b.index)
localecompare
const arr = [ '{ "index": "7332422033298424650" }', '{ "index": "7332422033298424651" }', '{ "index": "7332422033298424652" }', '{ "index": "7332422033298424653" }', '{ "index": "7332422033298424654" }', '{ "index": "7332422033298424655" }', ] for (let i = 0; i < arr.length; i++) { arr[i] = JSON.parse(arr[i]) } arr.sort((a, b) => b.index.localeCompare(a.index), undefined, { numeric: true })