Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
checking 2 fun locale array creation
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/126.0.0.0 Safari/537.36
Browser:
Chrome 126
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
Original
1457358.9 Ops/sec
Improved one
1030006.0 Ops/sec
Script Preparation code:
var NumberFormatUtils = { format: (locale, number) => number.toString(), formatToParts: (locale, number) => [ { type: 'decimal', value: '.' }, { type: 'minusSign', value: '-' }, { type: 'group', value: ',' } ] }; var STANDARD_DIGITS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', '-', ',']; var INDEX_DECIMAL = 10; var INDEX_MINUS_SIGN = 11; var INDEX_GROUP = 12; var LOCALE_TEST = 'en-US'; // Example locale
Tests:
Original
const getLocaleDigitsOriginal = (locale) => { const localeDigits = [...STANDARD_DIGITS]; for (let i = 0; i <= 9; i++) { localeDigits[i] = NumberFormatUtils.format(locale, i); } NumberFormatUtils.formatToParts(locale, 1000000.5).forEach((part) => { switch (part.type) { case 'decimal': localeDigits[INDEX_DECIMAL] = part.value; break; case 'minusSign': localeDigits[INDEX_MINUS_SIGN] = part.value; break; case 'group': localeDigits[INDEX_GROUP] = part.value; break; default: break; } }); return localeDigits; }; getLocaleDigitsOriginal(LOCALE_TEST);
Improved one
const DIGITS = [INDEX_DECIMAL, INDEX_MINUS_SIGN, INDEX_GROUP]; const getLocaleDigitsOptimized = (locale) => { const localeDigits = []; // Set standard digits for (let i = 0; i <= 9; i++) { localeDigits[i] = NumberFormatUtils.format(locale, i); } // Set standard symbols (decimal, minus sign, group) DIGITS.forEach((index) => { localeDigits[index] = STANDARD_DIGITS[index]; }); // Update locale-specific symbols NumberFormatUtils.formatToParts(locale, 1000000.5).forEach((part) => { switch (part.type) { case 'decimal': localeDigits[INDEX_DECIMAL] = part.value; break; case 'minusSign': localeDigits[INDEX_MINUS_SIGN] = part.value; break; case 'group': localeDigits[INDEX_GROUP] = part.value; break; default: break; } }); return localeDigits; }; getLocaleDigitsOptimized(LOCALE_TEST);