bench: add buffer writer bench.
This commit is contained in:
parent
dfefc7182f
commit
eef7ffbe6e
50
bench/buffer.js
Normal file
50
bench/buffer.js
Normal file
@ -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
bench/tx.js
12
bench/tx.js
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user