jsPerf.app is an online JavaScript performance benchmark test runner & jsperf.com mirror. It is a complete rewrite in homage to the once excellent jsperf.com now with hopefully a more modern & maintainable codebase.
jsperf.com URLs are mirrored at the same path, e.g:
https://jsperf.com/negative-modulo/2
Can be accessed at:
https://jsperf.app/negative-modulo/2
<script src="
https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js
"></script>
const twoDecimalsFormatter = new Intl.NumberFormat("en-US", {
style: "percent",
minimumFractionDigits: 2,
maximumFractionDigits: 2,
});
// rounds to nearest integer
const nearestIntegerFormatter = new Intl.NumberFormat("en-US", {
style: "percent",
minimumFractionDigits: 0,
maximumFractionDigits: 0,
});
const memoizedCreateFormatter = _.memoize((decimalDigits) => {
return new Intl.NumberFormat("en-US", {
style: "percent",
minimumFractionDigits: decimalDigits,
maximumFractionDigits: decimalDigits,
});
});
const formatPercentReuseFormatter = (val, options = {}) => {
const { rounded = false } = options;
if (val === null || val === undefined) {
return null;
}
if (rounded) {
return nearestIntegerFormatter.format(val);
}
return twoDecimalsFormatter.format(val);
};
const formatPercentRecreateFormatter = (val, options = {}) => {
const { rounded = false } = options;
if (val === null || val === undefined) {
return null;
}
const roundedDecimalDigits = rounded ? 0 : 2;
const formatter = memoizedCreateFormatter(roundedDecimalDigits);
return formatter.format(val);
};
Ready to run.
Test | Ops/sec | |
---|---|---|
reusing NumberFormat instance |
| ready |
recreating NumberFormat instance |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.