[Mono-dev] [U-SPAM] Re: String.GetHashCode()

Kamil Skalski kamil.skalski at gmail.com
Sun Dec 2 21:42:17 EST 2007


2007/12/2, Avery Pennarun <apenwarr at gmail.com>:
> On 02/12/2007, Andreas Nahr <ClassDevelopment at a-softtech.com> wrote:
> > Don't forget that 4 bytes per Hashcode isn't enough. You also need a boolean
> > to store if the hash is already computed (as e.g. 0 is a valid hash, too).
> > And then you would need one additional check for this boolean per call.
>
> Technically it would be safe (and no worse than current behaviour) to
> recalculate the hash every time in the rare case that it's exactly
> zero.
>
> > And don't forget that strings within the corelib ARE mutable to some extent.
>
> That sounds somewhat more important.
>
> Wouldn't it be better, in the cases where precomputing the hash would
> have a large benefit, just to create a new class like
> PrecomputedHashString that stores a string along with its hash?  Then
> the application itself could optimize for the cases where this matters
> by using the different class as the key to its hash tables.

If only they didn't make string sealed ;)

>
> Have fun,
>
> Avery
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>


-- 
Kamil Skalski
http://nazgul.omega.pl



More information about the Mono-devel-list mailing list