UNPKG

2.24 kBJavaScriptView Raw
1try {
2 var nodeuuid = require('../uuid');
3} catch (e) {
4 console.error('node-uuid require failed - skipping tests');
5}
6
7try {
8 var uuid = require('uuid');
9} catch (e) {
10 console.error('uuid require failed - skipping tests');
11}
12
13try {
14 var uuidjs = require('uuid-js');
15} catch (e) {
16 console.error('uuid-js require failed - skipping tests');
17}
18
19var N = 5e5;
20
21function rate(msg, t) {
22 console.log(msg + ': ' +
23 (N / (Date.now() - t) * 1e3 | 0) +
24 ' uuids/second');
25}
26
27console.log('# v4');
28
29// node-uuid - string form
30if (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
46if (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
55if (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
61for (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)});
62rate('140byte.es_v4', t);
63
64console.log('');
65console.log('# v1');
66
67// node-uuid - v1 string form
68if (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
81if (uuidjs) {
82 for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(1);
83 rate('uuidjs.create(1)', t);
84}