Skip to content

Commit

Permalink
bench: add buffer writer bench.
Browse files Browse the repository at this point in the history
  • Loading branch information
chjj committed Dec 12, 2016
1 parent dfefc71 commit eef7ffb
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 6 deletions.
50 changes: 50 additions & 0 deletions bench/buffer.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
'use strict';

var fs = require('fs');
var TX = require('../lib/primitives/tx');
var CoinView = require('../lib/coins/coinview');
var BufferWriter = require('../lib/utils/writer');
var StaticWriter = require('../lib/utils/staticwriter');
var bench = require('./bench');

var tx3 = parseTX('../test/data/tx3.hex');
var wtx = fs.readFileSync(__dirname + '/../test/data/wtx.hex', 'utf8');
var i, tx, end, raw;

wtx = new Buffer(wtx.trim(), 'hex');
tx = TX.fromRaw(wtx);

function parseTX(file) {
var data = fs.readFileSync(__dirname + '/' + file, 'utf8');
var parts = data.trim().split(/\n+/);
var raw = parts[0];
var tx = TX.fromRaw(raw.trim(), 'hex');
var view = new CoinView();
var i, prev;

for (i = 1; i < parts.length; i++) {
raw = parts[i];
prev = TX.fromRaw(raw.trim(), 'hex');
view.addTX(prev, -1);
}

return { tx: tx, view: view };
}

end = bench('serialize (static-writer)');
for (i = 0; i < 10000; i++) {
tx._raw = null;
tx._size = -1;
tx._witness = -1;
raw = tx.writeWitness(new StaticWriter(tx.getWitnessSizes().total)).render();
}
end(i);

end = bench('serialize (buffer-writer)');
for (i = 0; i < 10000; i++) {
tx._raw = null;
tx._size = -1;
tx._witness = -1;
raw = tx.writeWitness(new BufferWriter()).render();
}
end(i);
12 changes: 6 additions & 6 deletions bench/tx.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ var json = require('../test/data/block300025.json');
var block = Block.fromJSON(json);
var btx = { tx: block.txs[397], view: new CoinView() };

var tx1 = parseTX('../test/data/tx3.hex');
var tx3 = parseTX('../test/data/tx3.hex');
var wtx = fs.readFileSync(__dirname + '/../test/data/wtx.hex', 'utf8');
var i, tx, raw, end, flags, input;

Expand Down Expand Up @@ -58,8 +58,8 @@ end(i);

end = bench('hash');
for (i = 0; i < 3000; i++) {
tx1.tx.hash();
tx1.tx._hash = null;
tx3.tx.hash();
tx3.tx._hash = null;
}
end(i);

Expand Down Expand Up @@ -92,12 +92,12 @@ end(i);

end = bench('verify');
for (i = 0; i < 3000; i++)
tx1.tx.verify(tx1.view, constants.flags.VERIFY_P2SH);
end(i * tx1.tx.inputs.length);
tx3.tx.verify(tx3.view, constants.flags.VERIFY_P2SH);
end(i * tx3.tx.inputs.length);

end = bench('fee');
for (i = 0; i < 1000; i++)
tx1.tx.getFee(tx1.view);
tx3.tx.getFee(tx3.view);
end(i);

flags = constants.flags.VERIFY_P2SH | constants.flags.VERIFY_DERSIG;
Expand Down

0 comments on commit eef7ffb

Please sign in to comment.