You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					85 lines
				
				2.2 KiB
			
		
		
			
		
	
	
					85 lines
				
				2.2 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								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);
							 | 
						||
| 
								 | 
							
								}
							 |