Am Tue, 15 Jun 2010 09:18:45 +0200 schrieb Jan Holst Jensen <j...@biochemfusion.com>:
> On 2010-06-15 09:06, Bartosz wrote: > > By the way. > > After replace svArrays by STL containers, in some cases I observed > > boost of performance. > > > > For example: > > for (USHORT i = 0; i< aEntries.size(); ++i) > > { > > > > if (aEntries.at(i).aFntFmt == rFntFmt) > > { > > aRes = aEntries[i].aId; > > break; > > } > > } > > > > is much faster than: > > > > USHORT nCnt = aEntries.Count(); > > USHORT i; > > for (i = 0; i< nCnt&& 0 == aRes.Len(); ++i) > > { > > if (aEntries[i].aFntFmt == rFntFmt) > > aRes = aEntries[i].aId; > > } > > > > If you're about to optimize then try the iterator-version of above as > well. Something like (not tested, off the top of my head, and I don't > know the actual type of aEntries): > > EntryType::iterator end = aEntries.end(); > for (EntryType::iterator i = aEntries.begin(); i != end; i++) > { > > if (i->aFntFmt == rFntFmt) > { > aRes = i->aId; > break; > } > } > > In some of the code that I work on (not OOo, but another C++ project) > I have seen a very nice performance boost by switching from > array-style subscripting to iterators. Having measured performance on container access ad nauseum for new_itemsets I can only warn you about such generic statements: For example the new_itemsets cws seems to be 2-8% faster for loading and saving on unix, while seeming to be ~8% slower on loading on windows currently. So while measuring with callgrind is helping, it is only part of the truth -- especially since it is partially synthetic. Also measuring on a high-end i7 developer machine might be misleading, since the scenario were we care about performance (meek netbooks etc.) have completely different CPU-caches etc., resulting in possible completely different performances. Best Regards, Bjoern --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@openoffice.org For additional commands, e-mail: dev-h...@openoffice.org