[Mono-list] How many strings do I have?

Jonathan Pryor jonpryor@vt.edu
Sat, 09 Oct 2004 11:43:29 -0400


On Fri, 2004-10-08 at 04:39, Jeroen Frijters wrote:
> Jonathan Gilbert wrote:
> > Once a string is in the pool, it can NEVER be removed
> > (until the AppDomain is disposed).
> 
> In Java the string intern pool uses weak references. I don't know about
> .NET, but I'd hope it does the same.

I believe it doesn't.  From [1]:

        Interning happens two ways in the CLR.
        ... 
        
        2) It happens automatically, when you load an assembly.  All the
        string literals in the assembly are intern’ed.  This is
        expensive and – in retrospect – may have been a mistake.  In the
        future we might consider allowing individual assemblies to
        opt-in or opt-out....

 - Jon

[1] http://blogs.msdn.com/cbrumme/archive/2003/04/22/51371.aspx