more benchmarks.

This commit is contained in:
Christopher Jeffrey 2016-07-15 16:57:27 -07:00
parent 11947a6ba8
commit 27bf8c6ebb
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD
2 changed files with 103 additions and 0 deletions

42
bench/coin.js Normal file
View File

@ -0,0 +1,42 @@
'use strict';
var bn = require('bn.js');
var bcoin = require('../').set('main');
var constants = bcoin.protocol.constants;
var network = bcoin.protocol.network;
var utils = bcoin.utils;
var assert = require('assert');
var scriptTypes = constants.scriptTypes;
var bench = require('./bench');
var fs = require('fs');
var wtx = fs.readFileSync(__dirname + '/../test/data/wtx.hex', 'utf8');
wtx = bcoin.tx.fromRaw(wtx.trim(), 'hex');
var coins = bcoin.coins.fromTX(wtx);
var raw;
var end = bench('serialize');
for (var i = 0; i < 10000; i++)
raw = coins.toRaw();
end(i);
var end = bench('parse');
for (var i = 0; i < 10000; i++)
bcoin.coins.fromRaw(raw);
end(i);
var end = bench('parse-single');
var hash = wtx.hash('hex');
for (var i = 0; i < 10000; i++)
bcoin.coins.parseCoin(raw, hash, 5);
end(i);
var coins = bcoin.coins.fromRaw(raw);
var end = bench('get');
var j;
for (var i = 0; i < 10000; i++)
for (var j = 0; j < coins.outputs.length; j++)
coins.get(j);
end(i * coins.outputs.length);

61
bench/tx.js Normal file
View File

@ -0,0 +1,61 @@
'use strict';
var bn = require('bn.js');
var bcoin = require('../').set('main');
var constants = bcoin.protocol.constants;
var network = bcoin.protocol.network;
var utils = bcoin.utils;
var assert = require('assert');
var scriptTypes = constants.scriptTypes;
var bench = require('./bench');
var fs = require('fs');
var tx1 = parseTX('../test/data/tx3.hex');
var tx4 = parseExtended('../test/data/tx4.hex');
var wtx = fs.readFileSync(__dirname + '/../test/data/wtx.hex', 'utf8');
wtx = new Buffer(wtx.trim(), 'hex');
var tx;
function parseTX(file) {
file = fs.readFileSync(__dirname + '/' + file, 'utf8').trim().split(/\n+/);
var tx = bcoin.tx.fromRaw(file.shift().trim(), 'hex');
for (var i = 0; i < file.length; i++) {
var coin = bcoin.tx.fromRaw(file[i].trim(), 'hex');
tx.fillCoins(coin);
}
return tx;
}
function parseExtended(file) {
file = fs.readFileSync(__dirname + '/' + file, 'utf8').trim();
return bcoin.tx.fromExtended(file, true, 'hex');
}
var end = bench('parse');
for (var i = 0; i < 1000; i++)
tx = bcoin.tx.fromRaw(wtx);
end(i);
var end = bench('serialize');
var raw;
for (var i = 0; i < 1000; i++) {
tx._raw = null;
raw = tx.toRaw();
}
end(i);
var end = bench('fee');
for (var i = 0; i < 1000; i++)
tx.getFee();
end(i);
var end = bench('sanity');
for (var i = 0; i < 1000; i++)
tx.isSane();
end(i);
var end = bench('verify');
for (var i = 0; i < 3000; i++)
tx1.verify(constants.flags.VERIFY_P2SH);
end(i * tx1.inputs.length);