Changeset View
Changeset View
Standalone View
Standalone View
src/bench/mempool_eviction.cpp
Show All 26 Lines | |||||
// mempool. Code needs to be written to generate a much wider variety of | // mempool. Code needs to be written to generate a much wider variety of | ||||
// unique transactions for a more meaningful performance measurement. | // unique transactions for a more meaningful performance measurement. | ||||
static void MempoolEviction(benchmark::State &state) { | static void MempoolEviction(benchmark::State &state) { | ||||
CMutableTransaction tx1 = CMutableTransaction(); | CMutableTransaction tx1 = CMutableTransaction(); | ||||
tx1.vin.resize(1); | tx1.vin.resize(1); | ||||
tx1.vin[0].scriptSig = CScript() << OP_1; | tx1.vin[0].scriptSig = CScript() << OP_1; | ||||
tx1.vout.resize(1); | tx1.vout.resize(1); | ||||
tx1.vout[0].scriptPubKey = CScript() << OP_1 << OP_EQUAL; | tx1.vout[0].scriptPubKey = CScript() << OP_1 << OP_EQUAL; | ||||
tx1.vout[0].nValue = 10 * COIN; | tx1.vout[0].nValue = 10 * COIN.GetSatoshis(); | ||||
CMutableTransaction tx2 = CMutableTransaction(); | CMutableTransaction tx2 = CMutableTransaction(); | ||||
tx2.vin.resize(1); | tx2.vin.resize(1); | ||||
tx2.vin[0].scriptSig = CScript() << OP_2; | tx2.vin[0].scriptSig = CScript() << OP_2; | ||||
tx2.vout.resize(1); | tx2.vout.resize(1); | ||||
tx2.vout[0].scriptPubKey = CScript() << OP_2 << OP_EQUAL; | tx2.vout[0].scriptPubKey = CScript() << OP_2 << OP_EQUAL; | ||||
tx2.vout[0].nValue = 10 * COIN; | tx2.vout[0].nValue = 10 * COIN.GetSatoshis(); | ||||
CMutableTransaction tx3 = CMutableTransaction(); | CMutableTransaction tx3 = CMutableTransaction(); | ||||
tx3.vin.resize(1); | tx3.vin.resize(1); | ||||
tx3.vin[0].prevout = COutPoint(tx2.GetId(), 0); | tx3.vin[0].prevout = COutPoint(tx2.GetId(), 0); | ||||
tx3.vin[0].scriptSig = CScript() << OP_2; | tx3.vin[0].scriptSig = CScript() << OP_2; | ||||
tx3.vout.resize(1); | tx3.vout.resize(1); | ||||
tx3.vout[0].scriptPubKey = CScript() << OP_3 << OP_EQUAL; | tx3.vout[0].scriptPubKey = CScript() << OP_3 << OP_EQUAL; | ||||
tx3.vout[0].nValue = 10 * COIN; | tx3.vout[0].nValue = 10 * COIN.GetSatoshis(); | ||||
CMutableTransaction tx4 = CMutableTransaction(); | CMutableTransaction tx4 = CMutableTransaction(); | ||||
tx4.vin.resize(2); | tx4.vin.resize(2); | ||||
tx4.vin[0].prevout.SetNull(); | tx4.vin[0].prevout.SetNull(); | ||||
tx4.vin[0].scriptSig = CScript() << OP_4; | tx4.vin[0].scriptSig = CScript() << OP_4; | ||||
tx4.vin[1].prevout.SetNull(); | tx4.vin[1].prevout.SetNull(); | ||||
tx4.vin[1].scriptSig = CScript() << OP_4; | tx4.vin[1].scriptSig = CScript() << OP_4; | ||||
tx4.vout.resize(2); | tx4.vout.resize(2); | ||||
tx4.vout[0].scriptPubKey = CScript() << OP_4 << OP_EQUAL; | tx4.vout[0].scriptPubKey = CScript() << OP_4 << OP_EQUAL; | ||||
tx4.vout[0].nValue = 10 * COIN; | tx4.vout[0].nValue = 10 * COIN.GetSatoshis(); | ||||
tx4.vout[1].scriptPubKey = CScript() << OP_4 << OP_EQUAL; | tx4.vout[1].scriptPubKey = CScript() << OP_4 << OP_EQUAL; | ||||
tx4.vout[1].nValue = 10 * COIN; | tx4.vout[1].nValue = 10 * COIN.GetSatoshis(); | ||||
CMutableTransaction tx5 = CMutableTransaction(); | CMutableTransaction tx5 = CMutableTransaction(); | ||||
tx5.vin.resize(2); | tx5.vin.resize(2); | ||||
tx5.vin[0].prevout = COutPoint(tx4.GetId(), 0); | tx5.vin[0].prevout = COutPoint(tx4.GetId(), 0); | ||||
tx5.vin[0].scriptSig = CScript() << OP_4; | tx5.vin[0].scriptSig = CScript() << OP_4; | ||||
tx5.vin[1].prevout.SetNull(); | tx5.vin[1].prevout.SetNull(); | ||||
tx5.vin[1].scriptSig = CScript() << OP_5; | tx5.vin[1].scriptSig = CScript() << OP_5; | ||||
tx5.vout.resize(2); | tx5.vout.resize(2); | ||||
tx5.vout[0].scriptPubKey = CScript() << OP_5 << OP_EQUAL; | tx5.vout[0].scriptPubKey = CScript() << OP_5 << OP_EQUAL; | ||||
tx5.vout[0].nValue = 10 * COIN; | tx5.vout[0].nValue = 10 * COIN.GetSatoshis(); | ||||
tx5.vout[1].scriptPubKey = CScript() << OP_5 << OP_EQUAL; | tx5.vout[1].scriptPubKey = CScript() << OP_5 << OP_EQUAL; | ||||
tx5.vout[1].nValue = 10 * COIN; | tx5.vout[1].nValue = 10 * COIN.GetSatoshis(); | ||||
CMutableTransaction tx6 = CMutableTransaction(); | CMutableTransaction tx6 = CMutableTransaction(); | ||||
tx6.vin.resize(2); | tx6.vin.resize(2); | ||||
tx6.vin[0].prevout = COutPoint(tx4.GetId(), 1); | tx6.vin[0].prevout = COutPoint(tx4.GetId(), 1); | ||||
tx6.vin[0].scriptSig = CScript() << OP_4; | tx6.vin[0].scriptSig = CScript() << OP_4; | ||||
tx6.vin[1].prevout.SetNull(); | tx6.vin[1].prevout.SetNull(); | ||||
tx6.vin[1].scriptSig = CScript() << OP_6; | tx6.vin[1].scriptSig = CScript() << OP_6; | ||||
tx6.vout.resize(2); | tx6.vout.resize(2); | ||||
tx6.vout[0].scriptPubKey = CScript() << OP_6 << OP_EQUAL; | tx6.vout[0].scriptPubKey = CScript() << OP_6 << OP_EQUAL; | ||||
tx6.vout[0].nValue = 10 * COIN; | tx6.vout[0].nValue = 10 * COIN.GetSatoshis(); | ||||
tx6.vout[1].scriptPubKey = CScript() << OP_6 << OP_EQUAL; | tx6.vout[1].scriptPubKey = CScript() << OP_6 << OP_EQUAL; | ||||
tx6.vout[1].nValue = 10 * COIN; | tx6.vout[1].nValue = 10 * COIN.GetSatoshis(); | ||||
CMutableTransaction tx7 = CMutableTransaction(); | CMutableTransaction tx7 = CMutableTransaction(); | ||||
tx7.vin.resize(2); | tx7.vin.resize(2); | ||||
tx7.vin[0].prevout = COutPoint(tx5.GetId(), 0); | tx7.vin[0].prevout = COutPoint(tx5.GetId(), 0); | ||||
tx7.vin[0].scriptSig = CScript() << OP_5; | tx7.vin[0].scriptSig = CScript() << OP_5; | ||||
tx7.vin[1].prevout = COutPoint(tx6.GetId(), 0); | tx7.vin[1].prevout = COutPoint(tx6.GetId(), 0); | ||||
tx7.vin[1].scriptSig = CScript() << OP_6; | tx7.vin[1].scriptSig = CScript() << OP_6; | ||||
tx7.vout.resize(2); | tx7.vout.resize(2); | ||||
tx7.vout[0].scriptPubKey = CScript() << OP_7 << OP_EQUAL; | tx7.vout[0].scriptPubKey = CScript() << OP_7 << OP_EQUAL; | ||||
tx7.vout[0].nValue = 10 * COIN; | tx7.vout[0].nValue = 10 * COIN.GetSatoshis(); | ||||
tx7.vout[1].scriptPubKey = CScript() << OP_7 << OP_EQUAL; | tx7.vout[1].scriptPubKey = CScript() << OP_7 << OP_EQUAL; | ||||
tx7.vout[1].nValue = 10 * COIN; | tx7.vout[1].nValue = 10 * COIN.GetSatoshis(); | ||||
CTxMemPool pool(CFeeRate(1000)); | CTxMemPool pool(CFeeRate(1000)); | ||||
while (state.KeepRunning()) { | while (state.KeepRunning()) { | ||||
AddTx(tx1, 10000LL, pool); | AddTx(tx1, 10000LL, pool); | ||||
AddTx(tx2, 5000LL, pool); | AddTx(tx2, 5000LL, pool); | ||||
AddTx(tx3, 20000LL, pool); | AddTx(tx3, 20000LL, pool); | ||||
AddTx(tx4, 7000LL, pool); | AddTx(tx4, 7000LL, pool); | ||||
Show All 9 Lines |