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
Performance difference between calling method that was declared into a Javscript object, and calling the same method that was declared outside of the object with protoype keyword
Code from: http://stackoverflow.com/questions/3493252/javascript-prototype-operator-performance-saves-memory-but-is-it-faster/3493725#3493725
Written by: http://stackoverflow.com/users/279608/andrew
<script>
var U, X, Y, Z, W, V, A, u, x, y, i, intNow;
function V() {};
function V_message(v, s) {
var mymessage = s + "";
}
function V_addition(v, i, j) {
return (i * 2 + j * 2) / 2;
}
var g_message = V_message;
var g_addition = V_addition;
function W() {};
function W_message(w, s) {
var mymessage = s + "";
}
function W_addition(w, i, j) {
return (i * 2 + j * 2) / 2;
}
X = function() {};
X.prototype.message = function(s) {
var mymessage = s + "";
}
X.prototype.addition = function(i, j) {
return (i * 2 + j * 2) / 2;
}
Y = function() {
this.message = function(s) {
var mymessage = s + "";
}
this.addition = function(i, j) {
return (i * 2 + j * 2) / 2;
}
};
function Z() {
this.message = Z_message;
this.addition = Z_addition;
};
function Z_message(s) {
var mymessage = s + "";
}
function Z_addition(i, j) {
return (i * 2 + j * 2) / 2;
}
U = function() {};
U.prototype = {
message: function(s) {
var mymessage = s + "";
},
addition: function(i, j) {
return (i * 2 + j * 2) / 2;
}
};
</script>
Ready to run.
Test | Ops/sec | |
---|---|---|
Y method is declared into the Javscript object class |
| ready |
X method is declared outside class by using protoype keyword |
| ready |
Z method is declared via variables |
| ready |
Global call |
| ready |
call via Global variable |
| ready |
Prototype Block |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.