benchmark: Add a test to measure Buffer.slice perf
authorRaymond Feng <raymond@strongloop.com>
Fri, 23 May 2014 03:37:47 +0000 (20:37 -0700)
committerBert Belder <bertbelder@gmail.com>
Wed, 28 May 2014 18:57:05 +0000 (11:57 -0700)
Buffer.slice can be expensive. One regression was reported by https://github.com/joyent/node/issues/7633. The method should be benchmarked.

benchmark/buffers/buffer-slice.js [new file with mode: 0644]

diff --git a/benchmark/buffers/buffer-slice.js b/benchmark/buffers/buffer-slice.js
new file mode 100644 (file)
index 0000000..f632fa6
--- /dev/null
@@ -0,0 +1,20 @@
+var common = require('../common.js');
+var SlowBuffer = require('buffer').SlowBuffer;
+
+var bench = common.createBenchmark(main, {
+  type: ['fast', 'slow'],
+  n: [1024]
+});
+
+var buf = new Buffer(1024);
+var slowBuf = new SlowBuffer(1024);
+
+function main(conf) {
+  var n = +conf.n;
+  var b = conf.type === 'fast' ? buf : slowBuf;
+  bench.start();
+  for (var i = 0; i < n * 1024; i++) {
+    b.slice(10, 256);
+  }
+  bench.end(n);
+}