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 justMax(x, a) {
if (x < a) {
return x
} else {
return a
}
}
function clamp1(x, a, b) {
return x < a ? a : x > b ? b : x
}
function clamp1_inclusive(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;
}
var m_min = Math.min,
m_max = Math.max;
function clamp7(x, a, b) {
return m_min(m_max(x, a), b)
}
global.justMax = justMax;
global.clamp1 = clamp1;
global.clamp1_inclusive = clamp1_inclusive;
global.clamp2 = clamp2;
global.clamp3 = clamp3;
global.clamp4 = clamp4;
global.clamp5 = clamp5;
global.clamp6 = clamp6;
global.clamp7 = clamp7;
})(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 |
Using locally cached Math functions |
| ready |
Just Max |
| ready |
Using ? inclusive |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.