Skip to content

Commit

Permalink
Update fast buffer benchmarks
Browse files Browse the repository at this point in the history
  • Loading branch information
ry committed Sep 9, 2010
1 parent 17ba821 commit ff027d5
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 3 deletions.
6 changes: 3 additions & 3 deletions benchmark/buffer_creation.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SlowBuffer = require('buffer').SlowBuffer;


for (var i = 0; i < 9e7; i++) {
b = new Buffer(10);
for (var i = 0; i < 1e6; i++) {
b = new SlowBuffer(10);
b[1] = 2
}
42 changes: 42 additions & 0 deletions benchmark/fast_buffer2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
var SlowBuffer = require('buffer').SlowBuffer;
var POOLSIZE = 8*1024;
var pool;

function allocPool () {
pool = new SlowBuffer(POOLSIZE);
pool.used = 0;
}

function FastBuffer (length) {
this.length = length;

if (length > POOLSIZE) {
// Big buffer, just alloc one.
this.parent = new Buffer(length);
this.offset = 0;
} else {
// Small buffer.
if (!pool || pool.length - pool.used < length) allocPool();
this.parent = pool;
this.offset = pool.used;
pool.used += length;
}

// HERE HERE HERE
SlowBuffer.makeFastBuffer(this.parent, this, this.offset, this.length);
}

exports.FastBuffer = FastBuffer;

FastBuffer.prototype.get = function (i) {
if (i < 0 || i >= this.length) throw new Error("oob");
return this.parent[this.offset + i];
};

FastBuffer.prototype.set = function (i, v) {
if (i < 0 || i >= this.length) throw new Error("oob");
return this.parent[this.offset + i] = v;
};

// TODO define slice, toString, write, etc.
// slice should not use c++
6 changes: 6 additions & 0 deletions benchmark/fast_buffer2_creation.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

FastBuffer = require('./fast_buffer2').FastBuffer;
for (var i = 0; i < 1e6; i++) {
b = new FastBuffer(10);
b[1] = 2;
}
4 changes: 4 additions & 0 deletions benchmark/fast_buffer_creation.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
for (var i = 0; i < 1e6; i++) {
b = new Buffer(10);
b[1] = 2;
}

0 comments on commit ff027d5

Please sign in to comment.