about name hashWithInitialHash: 0.

classic Classic list List threaded Threaded
1 message Options
Stéphane Ducasse Stéphane Ducasse
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

about name hashWithInitialHash: 0.

Hi levente

we are performing a study with veronica and we looked at Monticello-ul.331 in squeak trunk

you mentioned that  name hashWithInitialHash: 0. is faster than String stringHash: name initialHash: 0.
and I was wondering if this is true and why?




String hashWithInitialHash: initialHash
       
        ^ self class stringHash: self initialHash: initialHash


hash

        | hash |
        hash := name hashWithInitialHash: 0.
        hash := superclassName hashWithInitialHash: hash.
        hash := self traitCompositionString hashWithInitialHash: hash.
        hash := self classTraitComposition asString hashWithInitialHash: hash.
        hash := (category ifNil: ['']) hashWithInitialHash: hash.
        hash := type hashWithInitialHash: hash.
        variables do: [ :v |
                hash := v name hashWithInitialHash: hash ].
        ^hash

=>

hash
        | hash |
        hash := String stringHash: name initialHash: 0.
        hash := String stringHash: superclassName initialHash: hash.
        hash := String stringHash: self traitCompositionString initialHash: hash.
        hash := String stringHash: self classTraitComposition asString initialHash: hash.
        hash := String stringHash: (category ifNil: ['']) initialHash: hash.
        hash := String stringHash: type initialHash: hash.
        variables do: [
                :v |
                hash := String stringHash: v name initialHash: hash.
        ].
        ^ hash


Thanks in advance

Stef and Veronica



Loading...