xerces-j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dave Brosius" <dbros...@mebigfatguy.com>
Subject Re: Interning strategy
Date Wed, 09 Jan 2008 06:01:06 GMT
Greetings, i was purusing old mailing list emails, and stumbled onto the 
following email sent some time ago :)

Luckily, from a quick perusal of the code, it appears that the email still 
applies.

I have a question about the implementation of SymbolTable

As expected, it appears to me to that it does hashing to find a bucket, then 
walks the chain of pointers from the bucket to find a string that is 
'equals'

Only if it doesn't exist is a new one added. All of this makes sense.

The question i have then, is why when you add an entry

public Entry(String symbol, Entry next) {
    this.symbol = symbol.intern();
    characters = new char[symbol.length()];
    symbol.getChars(0, characters.length, characters, 0);
    this.next = next;
}

does the code intern the string? Isn't the point of this class to stop 
pollution of the constant pool and perm gen? (besides allowing for alternate 
hashing?)
Given that the one String that lives in the SymbolTable is returned, i would 
think intern is redundant.

thanks,
dave

----- Original Message ----- 
From: "Michael Glavassevich" <mrglavas@ca.ibm.com>
To: <j-dev@xerces.apache.org>
Sent: Sunday, July 24, 2005 11:57 AM
Subject: Re: Interning strategy


Elliotte Harold <elharo@metalab.unc.edu> wrote on 07/22/2005 09:35:02 PM:

> Suppose I turn on interning in the parser by setting the SAX property
> http://xml.org/sax/features/string-interning to true. Will Xerces simply

> invoke the String.intern() method on the strings it creates or does it
> do something fancier like maintaining its own pool of string constants
> and reuse those?

It maintains a pool. See org.apache.xerces.util.SymbolTable, specifically
the addSymbol() methods.

> -- 
> Elliotte Rusty Harold  elharo@metalab.unc.edu
> XML in a Nutshell 3rd Edition Just Published!
> http://www.cafeconleche.org/books/xian3/
> http://www.amazon.com/exec/obidos/ISBN=0596007647/cafeaulaitA/ref=nosim
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
> For additional commands, e-mail: j-dev-help@xerces.apache.org
>

Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: mrglavas@ca.ibm.com
E-mail: mrglavas@apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org 


---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org


Mime
View raw message