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
Test different access method to an object property
<script>
obj = {
_x: 0
}
var acc = 0;
funct = {
get: function() {
return this._x
},
set: function(value) {
this._x = value
}
}
class_gs = function() {
this._x = 0;
};
class_pgs = function() {
this._x = 0;
};
obj_dp = {
_x: 0
}
Object.defineProperty(obj_dp, "x", {
get: funct['get'],
set: funct['set']
})
class_gs.prototype = {
get x() {
return this._x;
},
set x(v) {
this._x = v;
}
};
Object.defineProperty(class_pgs.prototype, 'x', funct)
obj_gs = new class_gs();
obj_pgs = new class_pgs();
obj_def = {
_x: 0
};
obj_def.__defineGetter__('x', funct['get']);
obj_def.__defineSetter__('x', funct['set']);
</script>
Ready to run.
Test | Ops/sec | |
---|---|---|
Object.defineProperty |
| ready |
__defineGetter__ |
| ready |
Normal |
| ready |
Prototype |
| ready |
Setter |
| ready |
Getter+Setter |
| ready |
set / get functions |
| ready |
define property on prototype |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.