From 9352ca82de33e8c49055ee2e208e8006eb81ec1b Mon Sep 17 00:00:00 2001 From: bel Date: Sun, 6 Apr 2025 10:05:42 -0600 Subject: [PATCH] WAY faster doing cumulative balances over summing [0,i] every reg loop --- cmd/cli/main.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cmd/cli/main.go b/cmd/cli/main.go index 4e0bea3..3a6ecec 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -107,8 +107,8 @@ func Main() { FPrintBalances(w, "", balances, nil, config.Query.USDOnly, config.Query.Normalize, time.Now().Format("2006-01-02")) case "reg": transactions := deltas.Transactions() - - for i, transaction := range transactions { + cumulative := make(ledger.Balances) + for _, transaction := range transactions { balances := ledger.Deltas(transaction).Like(q).Group(group).Balances().WithBPIsAt(bpis, transaction[0].Date).Nonzero() shouldPrint := false shouldPrint = shouldPrint || len(balances) > 2 @@ -121,8 +121,10 @@ func Main() { shouldPrint = shouldPrint || len(balances) > 0 } if shouldPrint { + cumulative.PushAll(balances) + cumulative = cumulative.Nonzero() fmt.Fprintf(w, "%s\t%s\n", transaction[0].Date, transaction[0].Description) - FPrintBalances(w, "\t\t", balances, transactions[:i+1].Deltas().Like(q).Group(group).Balances().WithBPIsAt(bpis, transaction[0].Date).Nonzero(), config.Query.USDOnly, config.Query.Normalize, transaction[0].Date) + FPrintBalances(w, "\t\t", balances, cumulative, config.Query.USDOnly, config.Query.Normalize, transaction[0].Date) } } default: