1 var common = require('../common.js');
2 var StringDecoder = require('string_decoder').StringDecoder;
4 var bench = common.createBenchmark(main, {
5 encoding: ['ascii', 'utf8', 'base64-utf8', 'base64-ascii'],
6 inlen: [32, 128, 1024],
7 chunk: [16, 64, 256, 1024],
11 var UTF_ALPHA = 'Blåbærsyltetøy';
12 var ASC_ALPHA = 'Blueberry jam';
15 var encoding = conf.encoding;
16 var inLen = conf.inlen | 0;
17 var chunkLen = conf.chunk | 0;
23 var isBase64 = (encoding === 'base64-ascii' || encoding === 'base64-utf8');
25 if (encoding === 'ascii' || encoding === 'base64-ascii')
27 else if (encoding === 'utf8' || encoding === 'base64-utf8')
30 throw new Error('Bad encoding');
32 var sd = new StringDecoder(isBase64 ? 'base64' : encoding);
34 for (var i = 0; i < inLen; ++i) {
35 if (i > 0 && (i % chunkLen) === 0 && !isBase64) {
36 chunks.push(new Buffer(str, encoding));
39 str += alpha[i % alpha.length];
41 if (str.length > 0 && !isBase64)
42 chunks.push(new Buffer(str, encoding));
44 str = new Buffer(str, 'utf8').toString('base64');
45 while (str.length > 0) {
46 var len = Math.min(chunkLen, str.length);
47 chunks.push(new Buffer(str.substring(0, len), 'utf8'));
48 str = str.substring(len);
52 var nChunks = chunks.length;
55 for (var i = 0; i < n; ++i) {
56 for (var j = 0; j < nChunks; ++j)