On Fri, 26 Sep 2003 16:11:04 +0200 (Romance Daylight Time) Vadim Zeitlin <[EMAIL PROTECTED]> wrote:
> On Fri, 26 Sep 2003 15:37:50 +0200 Xavier Nodet <[EMAIL PROTECTED]> wrote:
> XN> But the most time-consuming task seems to be to convert *all* the
> XN> searched strings to lower case so that the search is actually
> XN> case-insensitive. Would it be possible to cache the lower-case version
> XN> of the strings used in the address-book?
> Yes, AdbEntry could do this. Or, rather, Matches() could do it (it would
> just cache the values on the first call). This seems like a pretty simple
> thing to do, so if this is really the bottleneck, we're saved!
I tried, but this does not work... The problem is that the instances of
AdbEntryStoredInMemory are created during the search! This looks as
follows:
search:
for each entry
create a corresponding FCEntry (a subclass of AdbEntryStoredInMemory)
if it matches
store it in the resulting array
else
destroy it
end for
See FCEntryGroup::GetEntry and around line 145 in AdbManager.cpp...
This seems to mean that whenever one does a cearch, the whole address
book is parsed *from disk* again. Did I miss something? In any case,
we're not yet saved...
--
Xavier Nodet
"They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety." - Benjamin Franklin, 1759.
pgp00000.pgp
Description: PGP signature
