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
Multiple separate listeners
<script>
var global = window;
var require = function(val) {
if( val == "util") {
return {
isNumber: function( arg ) {
return typeof arg === 'number';
},
isUndefined: function( arg ) {
return arg === void 0;
},
isFunction: function( arg ) {
return typeof arg === "function";
},
isObject: function( arg ) {
return typeof arg === 'object' && arg !== null;
}
}
}
};
var module = {};
</script>
<script type="text/javascript" src="https://rawgithub.com/joyent/node/master/lib/events.js">
</script>
<script>
var NodeEmitter = module.exports;
</script>
<script type="text/javascript" src="https://rawgithub.com/petkaantonov/FastEmitter/master/fastemitter.js">
</script>
<script>
var FastEmitter = module.exports;
var a = new FastEmitter();
var b = new NodeEmitter();
if( !Array.isArray(a._events ) ) alert("modules are not loaded correctly");
if( !b._events ) alert("modules are not loaded correctly");
</script>
var sum = 0;
var nodeEmitter = new NodeEmitter();
var fastEmitter = new FastEmitter();
var adder = function() {
sum++;
};
var adder2 = function() {
sum++;
};
var adder3 = function() {
sum++;
};
nodeEmitter.on("eventname", adder);
fastEmitter.on("eventname", adder);
nodeEmitter.on("eventname2", adder);
fastEmitter.on("eventname2", adder);
nodeEmitter.on("eventname3", adder);
fastEmitter.on("eventname3", adder);
nodeEmitter.on("eventname", adder2);
fastEmitter.on("eventname", adder2);
nodeEmitter.on("eventname2", adder2);
fastEmitter.on("eventname2", adder2);
nodeEmitter.on("eventname3", adder2);
fastEmitter.on("eventname3", adder2);
nodeEmitter.on("eventname", adder3);
fastEmitter.on("eventname", adder3);
nodeEmitter.on("eventname2", adder3);
fastEmitter.on("eventname2", adder3);
nodeEmitter.on("eventname3", adder3);
fastEmitter.on("eventname3", adder3);
if( sum === 0 ) {
throw new Error("not working");
}
Ready to run.
Test | Ops/sec | |
---|---|---|
node emitter |
| ready |
fast emitter |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.