[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