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 src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/q.js/0.9.6/q.js"></script>
<script src="https://rawgit.com/Breeze/breeze.js/master/build/breeze.min.js"></script>
<script src="https://github.com/pouchdb/pouchdb/releases/download/3.0.6/pouchdb-3.0.6.min.js" type="application/javascript"></script>
<script src="https://rawgit.com/typicaljoe/taffydb/master/taffy-min.js" type="application/javascript"></script>
var firstNames = ['Steve', 'Geoff', 'Dan', 'Brendan', 'Pat', 'Drew', 'Carl', 'Mike', 'Zac', 'Kevin'];
var lastNames = ['Keith', 'Sullivan', 'Goldberg', 'Terrio', 'Bailey', 'Kovamees', 'McShane', 'Brown', 'Green'];
var personList = [];
// Create data service
var dataService = new breeze.DataService({
serviceName: 'DataService',
hasServerMetadata: false
});
// Create entity manager
var manager = new breeze.EntityManager({
dataService: dataService
});
// Create person entity type
var personEntityType = new breeze.EntityType({
shortName: "person",
namespace: "myAppNamespace"
});
var idProp = new breeze.DataProperty({
name: "Id",
dataType: breeze.DataType.Integer,
isPartOfKey: true
});
var firstNameProp = new breeze.DataProperty({
name: "FirstName",
dataType: breeze.DataType.String,
isNullable: true,
maxLength: 20
});
var lastNameProp = new breeze.DataProperty({
name: "LastName",
dataType: breeze.DataType.String,
isNullable: true,
maxLength: 20
});
personEntityType.addProperty(idProp);
personEntityType.addProperty(firstNameProp);
personEntityType.addProperty(lastNameProp);
// Add person entity type to the metadatastore
manager.metadataStore.addEntityType(personEntityType);
manager.metadataStore.setEntityTypeForResourceName('person', personEntityType);
// Create random records
for (var i = 0; i < 100; i++) {
var firstNameIndex = Math.floor(Math.random() * firstNames.length);
var lastNameIndex = Math.floor(Math.random() * lastNames.length);
var person = personEntityType.createEntity();
person.Id = Math.floor(Math.random() * 100000000);
person.FirstName = firstNames[firstNameIndex];
person.LastName = lastNames[lastNameIndex];
personList.push(person);
}
var taffydb1 = TAFFY(); // empty db
var pouchdb1 = new PouchDB('testDB1'); // empty db
manager.clear();
Ready to run.
Test | Ops/sec | |
---|---|---|
BreezeJS: Insert Records |
| ready |
TaffyDB: Insert records |
| ready |
PouchDB: Insert records |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.