[Libreoffice] in-lining more UNO foo ...

Matúš Kukan matus.kukan at gmail.com
Thu May 26 08:47:38 PDT 2011


Hello,

On 23 May 2011 15:55, Michael Meeks <michael.meeks at 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


More information about the LibreOffice mailing list