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 block = Block.fromJSON(json);
|
||||||
var btx = { tx: block.txs[397], view: new CoinView() };
|
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 wtx = fs.readFileSync(__dirname + '/../test/data/wtx.hex', 'utf8');
|
||||||
var i, tx, raw, end, flags, input;
|
var i, tx, raw, end, flags, input;
|
||||||
|
|
||||||
@ -58,8 +58,8 @@ end(i);
|
|||||||
|
|
||||||
end = bench('hash');
|
end = bench('hash');
|
||||||
for (i = 0; i < 3000; i++) {
|
for (i = 0; i < 3000; i++) {
|
||||||
tx1.tx.hash();
|
tx3.tx.hash();
|
||||||
tx1.tx._hash = null;
|
tx3.tx._hash = null;
|
||||||
}
|
}
|
||||||
end(i);
|
end(i);
|
||||||
|
|
||||||
@ -92,12 +92,12 @@ end(i);
|
|||||||
|
|
||||||
end = bench('verify');
|
end = bench('verify');
|
||||||
for (i = 0; i < 3000; i++)
|
for (i = 0; i < 3000; i++)
|
||||||
tx1.tx.verify(tx1.view, constants.flags.VERIFY_P2SH);
|
tx3.tx.verify(tx3.view, constants.flags.VERIFY_P2SH);
|
||||||
end(i * tx1.tx.inputs.length);
|
end(i * tx3.tx.inputs.length);
|
||||||
|
|
||||||
end = bench('fee');
|
end = bench('fee');
|
||||||
for (i = 0; i < 1000; i++)
|
for (i = 0; i < 1000; i++)
|
||||||
tx1.tx.getFee(tx1.view);
|
tx3.tx.getFee(tx3.view);
|
||||||
end(i);
|
end(i);
|
||||||
|
|
||||||
flags = constants.flags.VERIFY_P2SH | constants.flags.VERIFY_DERSIG;
|
flags = constants.flags.VERIFY_P2SH | constants.flags.VERIFY_DERSIG;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user