Welcome to mirror list, hosted at ThFree Co, Russian Federation.

benchmark.js « benchmark « node-uuid « node_modules - github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 40e6efbe762c1ec43f828b6d4212ef860fce5c3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
try {
  var nodeuuid = require('../uuid');
} catch (e) {
  console.error('node-uuid require failed - skipping tests');
}

try {
  var uuid = require('uuid');
} catch (e) {
  console.error('uuid require failed - skipping tests');
}

try {
  var uuidjs = require('uuid-js');
} catch (e) {
  console.error('uuid-js require failed - skipping tests');
}

var N = 5e5;

function rate(msg, t) {
  console.log(msg + ': ' +
    (N / (Date.now() - t) * 1e3 | 0) +
    ' uuids/second');
}

console.log('# v4');

// node-uuid - string form
if (nodeuuid) {
  for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4();
  rate('nodeuuid.v4() - using node.js crypto RNG', t);

  for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4({rng: nodeuuid.mathRNG});
  rate('nodeuuid.v4() - using Math.random() RNG', t);

  for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary');
  rate('nodeuuid.v4(\'binary\')', t);

  var buffer = new nodeuuid.BufferClass(16);
  for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary', buffer);
  rate('nodeuuid.v4(\'binary\', buffer)', t);
}

// libuuid - string form
if (uuid) {
  for (var i = 0, t = Date.now(); i < N; i++) uuid();
  rate('uuid()', t);

  for (var i = 0, t = Date.now(); i < N; i++) uuid('binary');
  rate('uuid(\'binary\')', t);
}

// uuid-js - string form
if (uuidjs) {
  for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(4);
  rate('uuidjs.create(4)', t);
}

// 140byte.es
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)});
rate('140byte.es_v4', t);

console.log('');
console.log('# v1');

// node-uuid - v1 string form
if (nodeuuid) {
  for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1();
  rate('nodeuuid.v1()', t);

  for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary');
  rate('nodeuuid.v1(\'binary\')', t);

  var buffer = new nodeuuid.BufferClass(16);
  for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary', buffer);
  rate('nodeuuid.v1(\'binary\', buffer)', t);
}

// uuid-js - v1 string form
if (uuidjs) {
  for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(1);
  rate('uuidjs.create(1)', t);
}