Re: UNO sequence cleanup ...

2014-10-02 Thread Matúš Kukan
On Tue, 2014-09-30 at 14:20 +0100, Michael Meeks wrote:
 Hi Matus,
 
   So - to confirm; Stephan and I discussed this, and there is interest in
 improving things.
 
   Currently the uno::Sequence destructor (which reaches iDestructSequence
 ~34k times during startup with a sequence that has a ref-count  1) -
 goes via:
 
 ...

This was fixed in https://gerrit.libreoffice.org/#/c/11718/
Thanks Noel, you have saved some pointless cycles there!
And thanks to Stephan for reviewing!

Best,
Matus


___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


UNO sequence cleanup ...

2014-09-30 Thread Michael Meeks
Hi Matus,

So - to confirm; Stephan and I discussed this, and there is interest in
improving things.

Currently the uno::Sequence destructor (which reaches iDestructSequence
~34k times during startup with a sequence that has a ref-count  1) -
goes via:

template class E 
inline Sequence E ::~Sequence()
{
const Type  rType = ::cppu::getTypeFavourUnsigned( this );
::uno_type_destructData(
this, rType.getTypeLibType(), (uno_ReleaseFunc)cpp_release );
}

Which ends up in some wonderful type-informed way inside:

cppu/source/uno/destr.hxx (idestructSequence)

But it would be far more ideal to have:

template class E 
inline Sequence E ::~Sequence()
{
if (!osl_atomic_decrement( rSeq._pSequence-nRefCount ))
doSomething () ...
}

Where 'doSomething' is left as the exercise for the hacker there but
ideally in-lines to a very small method call =) Quite possibly we'll
need a new 

In the -most- ideal world, we could trivially special-case these
uno::Sequence sal_uInt8  types (and other basic type sequences) and
just do an rtl_freeMemory (or whatever) in there.

Anyhow - it'd be great if you could look into that as/when we get to
that item on the list :-) Quite possibly as a quick prototype hack; we
could just directly assign:

rSeq._pSequence-nRefCount = 1;

just before calling the destructData ;-) that's just a tad cheesy
though it'd be interesting to see the result on stripped code size
and/or startup perf.

Thanks !

Michael.

-- 
 michael.me...@collabora.com  , Pseudo Engineer, itinerant idiot

___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice