clamp functions
JavaScript performance comparison
Info
Which is faster?
Preparation code
<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>
Test runner
Warning! For accurate results, please disable Firebug before running the tests. (Why?)
Java applet disabled.
| Test | Ops/sec | |
|---|---|---|
Using ? : |
|
pending… |
using Math object |
|
pending… |
using cached Math functions |
|
pending… |
Return fast if out of range |
|
pending… |
Return fast if in range |
|
pending… |
Return fast if out of range 2 |
|
pending… |
Compare results of other browsers
Revisions
You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:
- Revision 1: published
- Revision 2: published
- Revision 3: published
- Revision 4: published
- Revision 5: published
0 comments