|
[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: String interning (WAS: SAX2/Java: Towards a final form)
David Megginson wrote, > Tyler Baker wrote, > > And foo == "x", then your only additional overhead to a > > straight identity test is the dynamic method invocation of > > String.equals(). > > Only if the strings are equal -- if you're in a long switch > statement, most of them won't be equal, and the overhead will be > much more than the function call. With a JIT that can inline this is a non-issue. We lose the function call overhead, and the != case is actually the best case for equals() ... we may only have to inspect the first character to determine a mismatch. So the overhead boils down to a few extra instructions and a few extra memory accesses. This isn't just theoretical ... Hotspot does just that. In fact I can't see any real reason why less ambitious JITs shouldn't be able to do just as well, because, * java.lang.String is final, so dynamic method invocation can be short-circuited. * java.lang.String is magic: it has a special role in the language right down to the byte-code level. JITs can, and probably should, special case it. I think it would be useful if people using JVMs with poor String performance hassled the relevant vendors/maintainers and got them to improve the situation. Cheers, Miles -- Miles Sabin Cromwell Media Internet Systems Architect 5/6 Glenthorne Mews +44 (0)20 8817 4030 London, W6 0LJ, England msabin@c... http://www.cromwellmedia.com/ xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i... 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.
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|
|||||||||

Cart








