Name: js-handler/node_modules/restify/node_modules/node-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: | } |
