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
<script>
// mimicing php's array_combine()
function combine(a, b) {
var i, o = {};
for (i in a)
o[a[i]] = b[i];
return o;
}
// parses recordsets and returns an array of object instances
function recSet(data, facts) {
facts = facts || window;
var head = data.head.split(data.fldt),
recs = data.recs.split(data.rect),
fact = data.fact ? facts[data.fact] : function(obj) {return obj;};
for (var i in recs)
recs[i] = fact(combine(head, recs[i].split(data.fldt)));
return recs;
}
// now assuming headers and recs are json-encoded arrays
function recSet2(data, facts) {
facts = facts || window;
var head = JSON.parse(data.head),
recs = JSON.parse(data.recs),
fact = data.fact ? facts[data.fact] : function(obj) {return obj;};
for (var i in recs)
recs[i] = fact(combine(head, recs[i]));
return recs;
}
// factories
var facts = {
person: function(obj) {return obj;}
};
//-----------delim strings------------
var data = {
type: "delim",
fldt: "|",
rect: "~",
fact: "person", // object instantiation factory
head: "fname|lname|age|location|gender",
recs: ""
};
var i = 10000, recs = [];
while (i-- > 0)
recs.push("john q|public|34|chicago, il|male");
data.recs = recs.join("~");
//-----------complete json objects------------
var i = 10000, recs2 = [];
while (i-- > 0) {
recs2.push({
fname: "john q",
lname: "public",
age: "34",
location: "chicago, il",
gender: "male"
});
}
recs2 = JSON.stringify(recs2);
//-------json-encoded records as arrays------------
// recordset
var data2 = {
fact: "person", // object instantiation factory
head: ["fname","lname","age","location","gender"],
recs: []
};
var i = 10000;
while (i-- > 0) {
data2.recs.push({
fname: "john q",
lname: "public",
age: "34",
location: "chicago, il",
gender: "male"
});
}
data2.head = JSON.stringify(data2.head);
data2.recs = JSON.stringify(data2.recs);
</script>
Ready to run.
Test | Ops/sec | |
---|---|---|
from short csv string |
| ready |
from long json string |
| ready |
json encoded arrays |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.