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/classnames@2.5.1/index.min.js
"></script>
function formatInterpolationClassName(baseClass) {
return (classObj, customClass) => {
const modifiers = Object.keys(classObj);
const additionalClasses = modifiers.reduce((memo, mod) => ({
...memo,
[`${baseClass}--${mod}`]: classObj[mod]
}), {});
return classNames(baseClass, customClass, additionalClasses);
};
}
function formatConcatinationClassName(baseClass) {
return (classObj, customClass) => {
const modifiers = Object.keys(classObj);
const additionalClasses = modifiers.reduce((memo, mod) => ({
...memo,
[baseClass + '--' + mod]: classObj[mod]
}), {});
return classNames(baseClass, customClass, additionalClasses);
};
}
function formatMutationClassName(baseClass) {
return (classObj, customClass) => {
let additionalClasses = {};
for(const mod in classObj) {
additionalClasses[baseClass + '--' + mod] = classObj[mod];
}
return classNames(baseClass, customClass, additionalClasses);
};
}
const BASE_CLASS = 'base-class'
const formatInterpolation = formatInterpolationClassName(BASE_CLASS);
const formatConcatination = formatConcatinationClassName(BASE_CLASS);
const formatMutation = formatMutationClassName(BASE_CLASS);
const props = {error: true, inline: false}
Ready to run.
Test | Ops/sec | |
---|---|---|
pure classnames |
| ready |
interpolation |
| ready |
concat |
| ready |
join |
| ready |
interpolation helper |
| ready |
concat heler |
| ready |
mutation |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.