Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


Hi Michael,

On 08/23/2012 04:13 AM, Michael Meeks wrote:

set; surely it's smaller and easier to just do the pointer compare:

        if (mpString == r.mpString)

        is just as good presumably ?

Yes. That's probably better and short-and-sweet since it avoids one equality comparison and still just as effective. Good point.

except - with some more thinking:

        Also, I wonder how often the data-pilot code will do this ?

A LOT. String equality check was the single biggest performance bottleneck for years, with many documents thrown at me. This change, along with the string interning, brought back pivot cache refresh time down from 23 seconds to 4 second with the test document I used at the time.

 presumably
if we build a hash-table of strings we know are not equal (I guess the
DP has bucketing code for this already), it'd be far faster to look both
strings up in that bucket, detect they are not the same and then
exit ;-) [ assuming the bucket is constructed case-insensitively ].

Well, the bucket is constructed case-sensitively for now. I might try the case-insensitive hash table approach, which indeed sounds like a better idea, unless there are some gotchas lurking in there...

Kohei

--
Kohei Yoshida, LibreOffice hacker, Calc

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.