bench: walletdb benchmark.
This commit is contained in:
parent
47c6da514d
commit
9dfe86e612
@ -8,27 +8,31 @@ var assert = require('assert');
|
|||||||
var scriptTypes = constants.scriptTypes;
|
var scriptTypes = constants.scriptTypes;
|
||||||
var bench = require('./bench');
|
var bench = require('./bench');
|
||||||
var co = require('../lib/utils/co');
|
var co = require('../lib/utils/co');
|
||||||
|
var crypto = require('../lib/crypto/crypto');
|
||||||
|
|
||||||
bcoin.cache();
|
bcoin.cache();
|
||||||
|
|
||||||
var dummyInput = {
|
function dummy() {
|
||||||
prevout: {
|
var hash = crypto.randomBytes(32).toString('hex');
|
||||||
hash: constants.NULL_HASH,
|
return {
|
||||||
index: 0
|
prevout: {
|
||||||
},
|
hash: hash,
|
||||||
coin: {
|
index: 0
|
||||||
version: 1,
|
},
|
||||||
height: 0,
|
coin: {
|
||||||
value: 50460 * 4,
|
version: 1,
|
||||||
script: new bcoin.script([]),
|
height: 0,
|
||||||
coinbase: false,
|
value: 50460 * 4,
|
||||||
hash: constants.NULL_HASH,
|
script: new bcoin.script(),
|
||||||
index: 0
|
coinbase: false,
|
||||||
},
|
hash: hash,
|
||||||
script: new bcoin.script([]),
|
index: 0
|
||||||
witness: new bcoin.witness([]),
|
},
|
||||||
sequence: 0xffffffff
|
script: new bcoin.script(),
|
||||||
};
|
witness: new bcoin.witness(),
|
||||||
|
sequence: 0xffffffff
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
var walletdb = new bcoin.walletdb({
|
var walletdb = new bcoin.walletdb({
|
||||||
name: 'wallet-test',
|
name: 'wallet-test',
|
||||||
@ -41,7 +45,7 @@ var walletdb = new bcoin.walletdb({
|
|||||||
|
|
||||||
var runBench = co(function* runBench() {
|
var runBench = co(function* runBench() {
|
||||||
var i, j, wallet, addrs, jobs, end;
|
var i, j, wallet, addrs, jobs, end;
|
||||||
var result, nonce, tx, options;
|
var result, tx, options;
|
||||||
|
|
||||||
// Open and Create
|
// Open and Create
|
||||||
yield walletdb.open();
|
yield walletdb.open();
|
||||||
@ -74,25 +78,42 @@ var runBench = co(function* runBench() {
|
|||||||
for (i = 0; i < result.length; i++)
|
for (i = 0; i < result.length; i++)
|
||||||
addrs.push(result[i].getAddress());
|
addrs.push(result[i].getAddress());
|
||||||
|
|
||||||
// TX
|
// TX deposit
|
||||||
jobs = [];
|
jobs = [];
|
||||||
nonce = new BN(0);
|
|
||||||
for (i = 0; i < 10000; i++) {
|
for (i = 0; i < 10000; i++) {
|
||||||
tx = bcoin.mtx()
|
tx = bcoin.mtx()
|
||||||
|
.addInput(dummy())
|
||||||
.addOutput(addrs[(i + 0) % addrs.length], 50460)
|
.addOutput(addrs[(i + 0) % addrs.length], 50460)
|
||||||
.addOutput(addrs[(i + 1) % addrs.length], 50460)
|
.addOutput(addrs[(i + 1) % addrs.length], 50460)
|
||||||
.addOutput(addrs[(i + 2) % addrs.length], 50460)
|
.addOutput(addrs[(i + 2) % addrs.length], 50460)
|
||||||
.addOutput(addrs[(i + 3) % addrs.length], 50460);
|
.addOutput(addrs[(i + 3) % addrs.length], 50460)
|
||||||
|
.toTX();
|
||||||
|
|
||||||
tx.addInput(dummyInput);
|
jobs.push(walletdb.addTX(tx));
|
||||||
nonce.addn(1);
|
|
||||||
tx.inputs[0].script.set(0, nonce);
|
|
||||||
tx.inputs[0].script.compile();
|
|
||||||
|
|
||||||
jobs.push(walletdb.addTX(tx.toTX()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
end = bench('tx');
|
end = bench('deposit');
|
||||||
|
result = yield Promise.all(jobs);
|
||||||
|
end(10000);
|
||||||
|
|
||||||
|
// TX redemption
|
||||||
|
jobs = [];
|
||||||
|
for (i = 0; i < 10000; i++) {
|
||||||
|
tx = bcoin.mtx()
|
||||||
|
.addInput(tx, 0)
|
||||||
|
.addInput(tx, 1)
|
||||||
|
.addInput(tx, 2)
|
||||||
|
.addInput(tx, 3)
|
||||||
|
.addOutput(addrs[(i + 0) % addrs.length], 50460)
|
||||||
|
.addOutput(addrs[(i + 1) % addrs.length], 50460)
|
||||||
|
.addOutput(addrs[(i + 2) % addrs.length], 50460)
|
||||||
|
.addOutput(addrs[(i + 3) % addrs.length], 50460)
|
||||||
|
.toTX();
|
||||||
|
|
||||||
|
jobs.push(walletdb.addTX(tx));
|
||||||
|
}
|
||||||
|
|
||||||
|
end = bench('redemption');
|
||||||
result = yield Promise.all(jobs);
|
result = yield Promise.all(jobs);
|
||||||
end(10000);
|
end(10000);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user