Derek Mahar wrote:
7000-transaction ledger). So: some inefficient data structures/algorithms. Lots
of room for improvement. :)
It does seem that there is room for improvement, but even if it may be
slow now, I do appreciate that an implementation in another language
at least exists! Please don't stop what you're doing!
Thanks Derek! I also think that multiple implementations is good, for an app
that people need to be accurate and dependable.
Your comment led to me to spend some time on this, and I focussed on accountTreeFrom & ledgerAccount. I've learned that
my simple Tree type is inefficient here, and that I probably don't need to use a tree at all. Or there may be a way to
fix this with a strategically placed ! (ghc strictness annotation) but I haven't cracked it yet.
On the upside, on my machine hledger seems to do register reports faster than ledger, and when patterns are used for
filtering, both balance and register reports take about the same time with either implementation assuming non-huge files
and a fair wind.