24 lines
		
	
	
		
			488 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			24 lines
		
	
	
		
			488 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								// Taken from: http://ejohn.org/blog/javascript-benchmark-quality/
							 | 
						||
| 
								 | 
							
								module.exports = runTest(name, test, next, callback){
							 | 
						||
| 
								 | 
							
								  var runs = [], r = 0;
							 | 
						||
| 
								 | 
							
								  setTimeout(function(){
							 | 
						||
| 
								 | 
							
								    var start = Date.now(), diff = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    for ( var n = 0; diff < 1000; n++ ) {
							 | 
						||
| 
								 | 
							
								      test();
							 | 
						||
| 
								 | 
							
								      diff = Date.now() - start;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    runs.push( n );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if ( r++ < 4 )
							 | 
						||
| 
								 | 
							
								      setTimeout( arguments.callee, 0 );
							 | 
						||
| 
								 | 
							
								    else {
							 | 
						||
| 
								 | 
							
								      done(name, runs);
							 | 
						||
| 
								 | 
							
								      if ( next )
							 | 
						||
| 
								 | 
							
								        setTimeout( next, 0 );
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }, 0);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 |