https://bugs.freedesktop.org/show_bug.cgi?id=78479
Priority: medium
Bug ID: 78479
CC: [email protected], [email protected]
Assignee: [email protected]
Summary: very slow Asian text entry in writer ...
Severity: major
Classification: Unclassified
OS: All
Reporter: [email protected]
Hardware: Other
Status: NEW
Version: 4.2.4.1 rc
Component: sdk
Product: LibreOffice
Using my new feature/debugevent work - I entered random UCS2 into writer and
was amazed to discover that the cost per key-stroke was -extremely- high.
Luckily its rather easy to profile that with callgrind on that branch; I've
up-loaded a profile here:
http://users.freedesktop.org/~michael/callgrind-asian-entry-at-34ae7b16d.txt.gz
And I attach a screenshot. The punch-line is that ~all the time is spent
continually loading and unloading an UNO component for break iterating =)
21% of the time from ~6000 calls to osl_loadModuleRelative, 25% of the time
from OFactoryComponentHelper::createInstance
and that is rather an under-estimate since the profile also includes startup
etc. =) and I imagine un-loading the module also costs time.
So ...
What would be -really- nice would be a way to timeout / expire such components
(if we think they are worth un-loading) - of course, I expect UNO doesn't have
a thread lying around just to unref components (at a later date) ;-) and who
would want one ? but it also doesn't have an event loop we can plug a timer
into easily (though we could add a hook to provide one I guess (?)).
I imagine doing this a few seconds after last use might work quite nicely.
Then again - the immediate horrible hack is to pretend a systemic problem
doesn't exist, and go add some cache just for this single specific case to just
writer ;-> but I'd like to avoid that if possible.
Thoughts ?
--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs