[GNC-dev] Performance regression loading account
Maarten Bosmans
mkbosmans at gmail.com
Tue Mar 14 14:54:38 EDT 2023
Op ma 13 mrt 2023 om 04:44 schreef john <jralls at ceridwen.us>:
> My first guess is that it's from creating a cache of quickfill entries to populate a drop-down list of possible entries similar to the way the transfer account field has worked for a couple of years.
Yes, I've isolated it to the commit "Change the Register description
layout cell type", Bob in CC.
That branch adds the combobox and quickfill to the description field
of the register. In my case those are fairly long (~100 chars) and all
unique strings, as they come frome downloaded bank statements and
include a timestamp, account holder, actual description, etc. So for
my use case having a combo box to easy filling out new items is not
that useful anyway. May be we can think of a way to adapt the
behaviour to be useful in Bob's case (I suppose manual entry of a
short and often reused description text), but not slow down my case?
> An obvious optimization is to get a collation key with g_utf8_collate_key for each string and use that for doing the actual sorting/ordered inserting. It's still a char-by-char comparison but it saves having to validate and normalize the strings on every compare.
I will have a look into storing the collated string in the QuickFill.
That probably doubles the memory usage, but should not be too bad.
Maarten
More information about the gnucash-devel
mailing list