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
Tests performance of window.postMessage within a single window with various payload sizes.
var loremIpsum = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec fermentum cursus ultricies. Curabitur viverra dictum tellus, vitae rutrum magna sagittis in. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean tincidunt tellus in risus semper consequat. Suspendisse ut malesuada est. Praesent non turpis tincidunt elit ultricies volutpat. Donec sit amet nibh et mi rutrum venenatis ut in mauris. Nam molestie iaculis turpis ac facilisis. Quisque orci turpis, luctus a congue et, auctor sit amet ipsum. In facilisis mattis odio, eget sagittis lectus accumsan ut. Aliquam vestibulum felis sed libero sodales fermentum. Mauris tincidunt enim sed erat vestibulum et dictum nulla interdum. Cras tincidunt, lectus nec fringilla posuere, tortor nulla feugiat urna, eget elementum dui nulla ac tellus. Nullam at massa in dui consequat posuere. Nullam aliquam ultricies neque, eget porta nisi blandit malesuada. Aliquam ultrices tempus ligula eget tincidunt. Suspendisse a risus auctor magna fermentum sollicitudin. Proin vitae condimentum odio. Ut aliquam massa sit amet ipsum blandit suscipit. Duis ac consectetur leo. Integer id felis non est lobortis placerat. Aenean malesuada gravida mattis. Nunc non aliquam sapien. Cras id urna nisl, tincidunt commodo eros. In fringilla eros tortor, a tempus ipsum. Etiam tincidunt, erat aliquet viverra sagittis, risus lectus posuere nisl, et porta erat massa eget lectus. Nunc in metus ac orci pellentesque tempor. Aliquam amet."
// 6k
loremIpsum = loremIpsum + loremIpsum + loremIpsum + loremIpsum;
var generatePseudoRandomString = function(length) {
var startPos = Math.random() * (loremIpsum.length - length);
var pseudoRandom = loremIpsum.substr(startPos, length);
return pseudoRandom;
}
var generatePayload = function(items, itemLength) {
var payload = {};
payload.bulk = [];
for (var j = 0; j < items; j++) {
payload.bulk.push(generatePseudoRandomString(itemLength));
}
return payload;
}
fewSmallItems = generatePayload(50, 50);
manySmallItems = generatePayload(5000, 50);
fewLargeItems = generatePayload(50, 5000);
manyLargeItems = generatePayload(5000, 5000);
Ready to run.
Test | Ops/sec | |
---|---|---|
Few small items |
| ready |
Few large items |
| ready |
Many small items |
| ready |
Many large items |
| ready |
Many small items, json-ed |
| ready |
Many large items, json-ed |
| ready |
Smallest payload round-trip |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.