UNPKG

2.06 kBHTMLView Raw
1<!DOCTYPE html>
2<html>
3<head>
4 <title>LokiJS benchmarks</title>
5 <script src="taffy.js"></script>
6 <script src="nedb.js"></script>
7 <script src="../src/lokijs.js"></script>
8</head>
9<body>
10<button id="runTaffy">run Taffy</button>
11<button id="runLoki">run Loki</button>
12<button id="runNeDB">run NeDB</button>
13<button id="runRaw">run raw array insert</button>
14<script type="text/javascript">
15
16document.getElementById('runLoki').addEventListener('click', runLokiBenchmark);
17document.getElementById('runTaffy').addEventListener('click', runTaffyBenchmark);
18document.getElementById('runNeDB').addEventListener('click', runNeDBBenchmark);
19document.getElementById('runRaw').addEventListener('click', runRawBenchmark);
20
21var size = 100000;
22
23var generateData = function(size){
24
25 function getRandomInt (min, max) {
26 return Math.floor(Math.random() * (max - min + 1)) + min;
27 }
28
29 var coll = [];
30
31 var az = 'qwertyuiopasdfghjklzxcvbnm'.split('');
32 var azLength = az.length >>> 0;
33
34 var len = size || 100;
35 while(len--){
36 var random = getRandomInt(0, azLength);
37 coll.push( {name : az[random], age : random});
38 }
39
40 return coll;
41};
42
43var coll = generateData(size);
44
45function runNeDBBenchmark(){
46
47 var db = new Nedb();
48 var i = size;
49 console.profile('Profiling NeDB');
50 while(i--){
51 db.insert(coll[i]);
52 }
53 console.trace();
54 console.profileEnd();
55}
56
57function runTaffyBenchmark(){
58
59 console.log('Init...');
60
61
62 // initialize taffy
63 var friends = TAFFY();
64
65 var i = size;
66 console.profile('Profiling Taffy');
67 while(i--){
68 friends(coll[i]);
69 }
70 console.trace();
71 console.profileEnd();
72
73}
74
75function runLokiBenchmark(){
76 // initialize loki
77 var db = new loki('db');
78 var lokis = db.addCollection('friends','Friend');
79
80 var j = size;
81 console.profile('Profiling Loki');
82 while(j--){
83 lokis.insert(coll[j]);
84 }
85 console.trace();
86 console.profileEnd();
87}
88
89function runRawBenchmark(){
90 // initialize loki
91 var db = [];
92
93 var j = size;
94 console.profile('Profiling Raw');
95 while(j--){
96 db.push(coll[j]);
97 }
98 console.trace();
99 console.profileEnd();
100}
101
102
103
104</script>
105
106</body>
107</html>
\No newline at end of file