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.
		
		
		
		
		
			
		
			
				
					
					
						
							48 lines
						
					
					
						
							994 B
						
					
					
				
			
		
		
	
	
							48 lines
						
					
					
						
							994 B
						
					
					
				| var Stats = require('statistics/mutate')
 | |
| var LRU = require('./')
 | |
| 
 | |
| //simple benchmarks, and measure standard deviation
 | |
| 
 | |
| function run (N, op, init) {
 | |
|   var stats = null, value
 | |
|   for(var j = 0; j < 100; j++) {
 | |
|     if(init) value = init(j)
 | |
|     var start = Date.now()
 | |
|     for(var i = 0; i < N; i++) op(value, i)
 | |
|     stats = Stats(stats, N/((Date.now() - start)))
 | |
|   }
 | |
|   return stats
 | |
| }
 | |
| 
 | |
| //set 1000 random items, then read 10000 items.
 | |
| //since they are random, there will be misses as well as hits
 | |
| console.log('GET', run(100000, function (lru, n) {
 | |
|   lru.get(~~(Math.random()*1000))
 | |
| //  lru.set(n, Math.random())
 | |
| }, function () {
 | |
|   var lru = LRU(1000)
 | |
|   for(var i = 0; i ++ ; i < 1000)
 | |
|     lru.set(~~(Math.random()*1000), Math.random())
 | |
|   return lru
 | |
| }))
 | |
| 
 | |
| //set 100000 random values into LRU for 1000 values.
 | |
| //this means 99/100 should be evictions
 | |
| console.log('SET', run(100000, function (lru, n) {
 | |
|   lru.set(~~(Math.random()*100000), Math.random())
 | |
| }, function () {
 | |
|   return LRU(1000)
 | |
| }))
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |