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.