Initial commit
[yaffs-website] / node_modules / uuid / benchmark / benchmark.js
1 try {
2   var nodeuuid = require('../uuid');
3 } catch (e) {
4   console.error('node-uuid require failed - skipping tests');
5 }
6
7 try {
8   var uuid = require('uuid');
9 } catch (e) {
10   console.error('uuid require failed - skipping tests');
11 }
12
13 try {
14   var uuidjs = require('uuid-js');
15 } catch (e) {
16   console.error('uuid-js require failed - skipping tests');
17 }
18
19 var N = 5e5;
20
21 function rate(msg, t) {
22   console.log(msg + ': ' +
23     (N / (Date.now() - t) * 1e3 | 0) +
24     ' uuids/second');
25 }
26
27 console.log('# v4');
28
29 // node-uuid - string form
30 if (nodeuuid) {
31   for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4();
32   rate('nodeuuid.v4() - using node.js crypto RNG', t);
33
34   for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4({rng: nodeuuid.mathRNG});
35   rate('nodeuuid.v4() - using Math.random() RNG', t);
36
37   for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary');
38   rate('nodeuuid.v4(\'binary\')', t);
39
40   var buffer = new nodeuuid.BufferClass(16);
41   for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary', buffer);
42   rate('nodeuuid.v4(\'binary\', buffer)', t);
43 }
44
45 // libuuid - string form
46 if (uuid) {
47   for (var i = 0, t = Date.now(); i < N; i++) uuid();
48   rate('uuid()', t);
49
50   for (var i = 0, t = Date.now(); i < N; i++) uuid('binary');
51   rate('uuid(\'binary\')', t);
52 }
53
54 // uuid-js - string form
55 if (uuidjs) {
56   for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(4);
57   rate('uuidjs.create(4)', t);
58 }
59
60 // 140byte.es
61 for (var i = 0, t = Date.now(); i < N; i++) 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(s,r){r=Math.random()*16|0;return (s=='x'?r:r&0x3|0x8).toString(16)});
62 rate('140byte.es_v4', t);
63
64 console.log('');
65 console.log('# v1');
66
67 // node-uuid - v1 string form
68 if (nodeuuid) {
69   for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1();
70   rate('nodeuuid.v1()', t);
71
72   for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary');
73   rate('nodeuuid.v1(\'binary\')', t);
74
75   var buffer = new nodeuuid.BufferClass(16);
76   for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary', buffer);
77   rate('nodeuuid.v1(\'binary\', buffer)', t);
78 }
79
80 // uuid-js - v1 string form
81 if (uuidjs) {
82   for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(1);
83   rate('uuidjs.create(1)', t);
84 }