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.
		
		
		
		
		
			
		
			
				
					62 lines
				
				1.5 KiB
			
		
		
			
		
	
	
					62 lines
				
				1.5 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict'
							 | 
						||
| 
								 | 
							
								var nul = process.platform === 'win32' ? '\\\\.\\NUL' : '/dev/null'
							 | 
						||
| 
								 | 
							
								var bench = require('fastbench')
							 | 
						||
| 
								 | 
							
								var stream = require('fs').createWriteStream(nul)
							 | 
						||
| 
								 | 
							
								var flatstr = require('./')
							 | 
						||
| 
								 | 
							
								var largeStr = JSON.stringify(require('./package.json'))
							 | 
						||
| 
								 | 
							
								largeStr += largeStr
							 | 
						||
| 
								 | 
							
								largeStr += largeStr
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var run = bench([
							 | 
						||
| 
								 | 
							
								  function unflattenedManySmallConcats (cb) {
							 | 
						||
| 
								 | 
							
								    stream.write(makeStr('a', 200))
							 | 
						||
| 
								 | 
							
								    setImmediate(cb)
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  function flattenedManySmallConcats (cb) {
							 | 
						||
| 
								 | 
							
								    stream.write(flatstr(makeStr('a', 200)))
							 | 
						||
| 
								 | 
							
								    setImmediate(cb)
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  function unflattenedSeveralLargeConcats (cb) {
							 | 
						||
| 
								 | 
							
								    stream.write(makeStr(largeStr, 10))
							 | 
						||
| 
								 | 
							
								    setImmediate(cb)
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  function flattenedSeveralLargeConcats (cb) {
							 | 
						||
| 
								 | 
							
								    stream.write(flatstr(makeStr(largeStr, 10)))
							 | 
						||
| 
								 | 
							
								    setImmediate(cb)
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  function unflattenedExponentialSmallConcats (cb) {
							 | 
						||
| 
								 | 
							
								    stream.write(makeExpoStr('a', 12))
							 | 
						||
| 
								 | 
							
								    setImmediate(cb)
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  function flattenedExponentialSmallConcats (cb) {
							 | 
						||
| 
								 | 
							
								    stream.write(flatstr(makeExpoStr('a', 12)))
							 | 
						||
| 
								 | 
							
								    setImmediate(cb)
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  function unflattenedExponentialLargeConcats (cb) {
							 | 
						||
| 
								 | 
							
								    stream.write(makeExpoStr(largeStr, 7))
							 | 
						||
| 
								 | 
							
								    setImmediate(cb)
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  function flattenedExponentialLargeConcats (cb) {
							 | 
						||
| 
								 | 
							
								    stream.write(flatstr(makeExpoStr(largeStr, 7)))
							 | 
						||
| 
								 | 
							
								    setImmediate(cb)
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								], 10000)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								run(run)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function makeStr (str, concats) {
							 | 
						||
| 
								 | 
							
								  var s = ''
							 | 
						||
| 
								 | 
							
								  while (concats--) {
							 | 
						||
| 
								 | 
							
								    s += str
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return s
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function makeExpoStr (str, concats) {
							 | 
						||
| 
								 | 
							
								  var s = str
							 | 
						||
| 
								 | 
							
								  while (concats--) {
							 | 
						||
| 
								 | 
							
								    s += s
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return s
							 | 
						||
| 
								 | 
							
								}
							 |