[
Lists Home |
Date Index |
Thread Index
]
- From: David Megginson <david@megginson.com>
- To: xml-dev@ic.ac.uk
- Date: Fri, 14 Jan 2000 16:48:20 -0500 (EST)
Assaf Arkin writes:
> For the life of me I cannot figure out what's wrong with
>
> if ( name.equals( "foo" ) )
>
> or
>
> if ( name == "foo" || name.equals( "foo" ) )
The normal case is that the names are *not* the same (you probably
test against many possibilities to find a match), so you pay the
equals() cost most of the time. For comparison, I just whipped up a
Java class to compare two (non-equal) Strings 10,000,000 times. Here
are the USER timings:
No comparisons (startup overhead): 0.67 seconds
Compare with ==: 0.94 seconds (=0.27 seconds)
Compare with equals(): 8.00 seconds (=7.33 seconds)
That's a very significant performance difference. It doesn't matter
if I use == before equals(), of course, since they are not == or
equals(). Now, I don't know if the difference is big enough to show
up in an overall application, but given the efficiency of ==, it would
probably be an order of magnitude faster to test against 30 or 40
names using == than it would to make a single Hashtable or HashMap
lookup.
All the best,
David
--
David Megginson david@megginson.com
http://www.megginson.com/
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ or CD-ROM/ISBN 981-02-3594-1
Please note: New list subscriptions now closed in preparation for transfer to OASIS.
|