[Libreoffice] Trying to diagnose base running extremely slowly
michael.meeks at suse.com
Thu Jan 12 05:18:36 PST 2012
On Thu, 2012-01-12 at 10:44 +0100, Stephan Bergmann wrote:
> > I think the best solution here would be to change the LibO hsqldb code,
> > to call Attach/DetachCurrentThread rarely rather than frequently, but
> > according to Ocke Janssen (who used to maintain that code) that was no
> > easy option.
> One rather easy fix would be to confine the
> com.sun.star.comp.sdbc.JDBCDriver UNO code to a thread-affine apartment,
> see the attached patch. That way, all code related to this UNO service
> (which is the code that calls Attach/DetachCurrentThread so frequently
> and thus causes the performance degradation) is run in a single,
> dedicated thread.
That sounds like a rather elegant fix to me :-) as long as that thread
is not the "main thread" - we use rather deep stacks in the calc code
there & this is how the original bug was found etc. it'd be a good fix.
> One drawback of using the thread-affine apartment is that all code
> related to the JDBC driver is effectively serialized, removing any
> potential performance advantage from accessing the driver from multiple
> treads. I do not know whether that is acceptable or not.
Given the generally tangled locking everywhere I would expect that
virtually everything is serialised anyway ;-) so ...
It'd be great to have a fix for the base guys I guess.
michael.meeks at suse.com <><, Pseudo Engineer, itinerant idiot
More information about the LibreOffice