OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: String interning

[ 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.






 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS