Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


Hello,

On 23 May 2011 15:55, Michael Meeks <michael.meeks@novell.com> wrote:
       The basic problem we have here is this, code like:

   PropertyValue aPath;
   aPath.Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("nodepath"));
   aPath.Value <<= rtl::OUString::createFromAscii( "foo" );
   pArgs[0] <<= aPath; // This is the problem line ...

       despite us knowing all the information to do this 'right' at compile
time, ends up loading a huge (and horribly inefficient) types.rdb file,
and then using that to copy C++ types into an abstract internal
representation.

       Of course - it'd be nice to have a profile to see if this is actually
slow first ;-) can you run kcachegrind[1] on a small document load ? and
look at the call counts of things like:

       _copyConstructAny( pDest, pSource, pType, 0, acquire, 0 );

So _copyConstructAny is called 180 205 times mostly from uno_type_any_construct.
I think inside the function itself are executed 0.26% instructions of all.
There is also Cycle Detection option in KCachegrind but I don't know
what it is doing. I had it enabled.

What specifically should I search for?
Is this enough?
I guess time can't be measured from callgrind's output. Or cycle
estimation is something like that?

Regards,
Matus

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.