summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoss Marco <bossm8@bfh.ch>2021-11-12 17:28:11 +0100
committerBoss Marco <bossm8@bfh.ch>2021-11-12 17:28:11 +0100
commitba198eab4a368b3a8dc2992e17e2b88ad377e287 (patch)
tree90c411ec7675a2157deac2b6bdb7adf51e0a69fe
parent612275df613e1c0af15d062c387b9d2f14ccc2fc (diff)
downloadwallet-core-ba198eab4a368b3a8dc2992e17e2b88ad377e287.tar.gz
wallet-core-ba198eab4a368b3a8dc2992e17e2b88ad377e287.tar.bz2
wallet-core-ba198eab4a368b3a8dc2992e17e2b88ad377e287.zip
purge wallet after a specified amount of iterations
-rw-r--r--packages/taler-wallet-cli/src/bench1.ts23
1 files changed, 18 insertions, 5 deletions
diff --git a/packages/taler-wallet-cli/src/bench1.ts b/packages/taler-wallet-cli/src/bench1.ts
index 0e2f94f9f..f0db9761a 100644
--- a/packages/taler-wallet-cli/src/bench1.ts
+++ b/packages/taler-wallet-cli/src/bench1.ts
@@ -28,6 +28,7 @@ import {
getDefaultNodeWallet,
NodeHttpLib,
WalletApiOperation,
+ Wallet,
} from "@gnu-taler/taler-wallet-core";
/**
@@ -48,20 +49,25 @@ export async function runBench1(configJson: any): Promise<void> {
const numIter = b1conf.iterations ?? 1;
const numDeposits = b1conf.deposits ?? 5;
+ const restartWallet = b1conf.restartAfter ?? 20;
const withdrawAmount = (numDeposits + 1) * 10;
logger.info(`Starting Benchmark iterations=${numIter} deposits=${numDeposits}`);
+ let wallet = {} as Wallet;
+
for (let i = 0; i < numIter; i++) {
// Create a new wallet in each iteration
// otherwise the TPS go down
// my assumption is that the in-memory db file gets too large
- const wallet = await getDefaultNodeWallet({
- // No persistent DB storage.
- persistentStoragePath: undefined,
- httpLib: myHttpLib,
- });
+ if (i % restartWallet == 0) {
+ wallet = await getDefaultNodeWallet({
+ // No persistent DB storage.
+ persistentStoragePath: undefined,
+ httpLib: myHttpLib,
+ });
+ }
await wallet.client.call(WalletApiOperation.InitWallet, {});
logger.trace(`Starting withdrawal amount=${withdrawAmount}`);
@@ -128,6 +134,12 @@ interface Bench1Config {
currency: string;
deposits?: number;
+
+ /**
+ * How any iterations run until the wallet db gets purged
+ * Defaults to 20.
+ */
+ restartAfter?: number;
}
/**
@@ -141,4 +153,5 @@ const codecForBench1Config = () =>
.property("iterations", codecOptional(codecForNumber()))
.property("deposits", codecOptional(codecForNumber()))
.property("currency", codecForString())
+ .property("restartAfter", codecOptional(codecForNumber()))
.build("Bench1Config");