src: replace naive search in Buffer::IndexOf
[platform/upstream/nodejs.git] / benchmark / buffers / buffer-indexof.js
1 var common = require('../common.js');
2 var fs = require('fs');
3
4 var bench = common.createBenchmark(main, {
5   search: ['@', 'SQ', '10x', '--l', 'Alice', 'Gryphon', 'Panther',
6            'Ou est ma chatte?', 'found it very', 'among mad people',
7            'neighbouring pool', 'Soo--oop', 'aaaaaaaaaaaaaaaaa',
8            'venture to go near the house till she had brought herself down to',
9            '</i> to the Caterpillar'],
10   encoding: ['undefined', 'utf8', 'ucs2', 'binary'],
11   type: ['buffer', 'string'],
12   iter: [1]
13 });
14
15 function main(conf) {
16   var iter = (conf.iter) * 100000;
17   var aliceBuffer = fs.readFileSync(__dirname + '/../fixtures/alice.html');
18   var search = conf.search;
19   var encoding = conf.encoding;
20
21   if (encoding === 'undefined') {
22     encoding = undefined;
23   }
24
25   if (encoding === 'ucs2') {
26     aliceBuffer = new Buffer(aliceBuffer.toString(), encoding);
27   }
28
29   if (conf.type === 'buffer') {
30     search = new Buffer(new Buffer(search).toString(), encoding);
31   }
32
33   bench.start();
34   for (var i = 0; i < iter; i++) {
35     aliceBuffer.indexOf(search, 0, encoding);
36   }
37   bench.end(iter);
38 }