Hello, On 23 May 2011 15:55, Michael Meeks <michael.me...@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 _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice