Bug 387072

Summary: Slow switch to ledgerview
Product: [Applications] kmymoney Reporter: Ralf Habacker <ralf.habacker>
Component: generalAssignee: KMyMoney Devel Mailing List <kmymoney-devel>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 4.8.0   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In: 4.8.2

Description Ralf Habacker 2017-11-18 15:03:41 UTC
from https://phabricator.kde.org/p/mcherey/

This bug was annoying me for a long time. I use kmymoney for several years and I have about 15k entries (about 5k per one account). Every first switch to ledger view takes ~5s. (package from repo, version 4.6) I was pretty sure that I don't have so much data to process so long.
Comment 1 Ralf Habacker 2017-11-18 15:04:20 UTC
https://phabricator.kde.org/p/mcherey/

After debugging I saw that problem is in Register::resize that every time goes through all 5k entries for each visible columns and calculating minimal width of column by rendering its text. Register::resize is called about 4 times per first switch (3 times with 'force==true' flag, so guard at the beginning of the function doesn't help us).
So this little optimization makes it possible to call Register::resize as much as you want and it won't affect performance if nothing changed in items.

review https://phabricator.kde.org/D8507
Comment 2 Ralf Habacker 2017-11-18 15:07:08 UTC
Git commit 275ad37820c254d361059f95abbfdf1e71016c94 by Ralf Habacker.
Committed on 18/11/2017 at 15:06.
Pushed by habacker into branch '4.8'.

Speed up first switch to ledgerview

Reviewers: #kmymoney, tbaumgart

Reviewed By: tbaumgart

Subscribers: tbaumgart

Tags: #kmymoney
FIXED-IN:4.8.2
Differential Revision: https://phabricator.kde.org/D8507

M  +12   -1    kmymoney/widgets/register.cpp
M  +1    -0    kmymoney/widgets/register.h

https://commits.kde.org/kmymoney/275ad37820c254d361059f95abbfdf1e71016c94