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
Which is faster?
<script>
(function(global) {
var min = Math.min,
max = Math.max;
function clamp1(x, a, b) {
return x < a ? a : x > b ? b : x
}
function clamp2(x, a, b) {
return Math.min(Math.max(x, a), b)
}
function clamp3(x, a, b) {
return min(max(x, a), b)
}
function clamp4(num, min, max) {
if (num < min) return min;
if (max < num) return max;
return num;
}
function clamp5(num, min, max) {
if (min < num) {
if (num < max) {
return num;
}
return max;
}
return min;
}
function clamp6(num, min, max) {
if (num <= min) return min;
if (max <= num) return max;
return num;
}
global.clamp1 = clamp1;
global.clamp2 = clamp2;
global.clamp3 = clamp3;
global.clamp4 = clamp4;
global.clamp5 = clamp5;
global.clamp6 = clamp6;
})(window)
</script>Ready to run.
| Test | Ops/sec | |
|---|---|---|
| Using ? : | | ready |
| using Math object | | ready |
| using cached Math functions | | ready |
| Return fast if out of range | | ready |
| Return fast if in range | | ready |
| Return fast if out of range 2 | | ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.