Denaro icon indicating copy to clipboard operation
Denaro copied to clipboard

Very slow with larger number of transactions

Open terminalmage opened this issue 2 years ago • 5 comments

I have been testing Denaro using some imported QIF files. I have account history going back to 2008, and some of my accounts have over 10,000 transactions. But even at 6,000 transactions, there is considerable UI lag. Clicking on a transaction can take more than a second to register, and longer still to open. Simply loading that 6,000+ transaction account can take 5-10 seconds, triggering a "not responding" message from GNOME.

I'm on pretty new hardware and I don't experience this UI lag in KMyMoney, GNUCash, etc., this behavior is unique to Denaro.

terminalmage avatar Jan 27 '24 17:01 terminalmage

Denaro is getting a new C++ rewrite soon where I hope to address all of these performance issues.

nlogozzo avatar Jan 27 '24 19:01 nlogozzo

That's great news! Looking forward to testing when the time comes.

terminalmage avatar Jan 28 '24 06:01 terminalmage

What Denaro has previously done is load every single transaction into memory and work of off that and then save changes back into the database while updating what's been stored in memory as well.

I think with the rewrite I'm going to use database queries to fetch this data on the fly and when it's needed instead of storing everything in memory, which should make the application faster and reduce RAM usage (I'm sure when you open this account the RAM usage is super high as well)

nlogozzo avatar Feb 14 '24 00:02 nlogozzo

Yeah it is... just loading the account can put the app in "not responding" status for a few seconds.

I have been building from the AUR as releases come out, so I should be able to switch to the denaro-git PKGBUILD to test once the initial rewrite has been merged. The PKGBUILD might need to be updated though, if there are any changes to the deps or the commands used to build.

terminalmage avatar Feb 20 '24 14:02 terminalmage

Although I don't use Arch, once I merge the C++ branch into main I will try to create an updated/new PKGBUILD...ofc it will be available on the beta branch of flathub which you could use to test (and it will install the beta version separate from the main stable flathub version)

nlogozzo avatar Feb 20 '24 19:02 nlogozzo