[Libreoffice-bugs] [Bug 49350] 10x speedup of saving a new entry to a large autocorrect replacement table

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Aug 20 12:17:20 CEST 2012


https://bugs.freedesktop.org/show_bug.cgi?id=49350

Michael Meeks <michael.meeks at novell.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Status Whiteboard|                            |EasyHack,DifficultyInterest
                   |                            |ing,SkillCpp
            Summary|freeze when saving new      |10x speedup of saving a new
                   |entry to a large            |entry to a large
                   |autocorrect replacement     |autocorrect replacement
                   |table                       |table

--- Comment #25 from Michael Meeks <michael.meeks at novell.com> 2012-08-20 10:17:20 UTC ---
> hi Michael, I don't want to seem pushy, but I just wanted to know
> if you are aware of the backtrace provided by Korrawit

Drat - I missed that :-) Poking at the trace (thanks for that) in kcachegrind -
it seems like a big chunk of the problem is here:

SvLBoxString::InitViewData(SvLBox*,SvLBoxEntry *, SvViewDataItem *)

Which is called 484,000 times - and chews up 25% of the total time (including
startup etc.) mostly in measuring text via. OutputDevice::GetTextWidth()

That's fun :-)

That in turn is called from SvLBox::RecalcViewData - which is called 11 times
(seems odd), from SvTreeListBox::SetFont - which is called 9x times (odd).

That is called from SvTreeListBox::PaintEntry1 - which is called 80x times -
so, perhaps if we can work out what's up with changing the font there, we could
get a 10x speedup of that piece.

I've easy-hackified this, hopefully that'll increase interest.

Thanks for the trace !

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Libreoffice-bugs mailing list