Call for help [was: [Re: [ENH] BehaviorHashEnh]]

Stephan Rudlof sr at evolgo.de
Fri Oct 1 23:39:05 UTC 2004


Dear All,

I have the tail of the snake:

Stephan Rudlof wrote:
> PS: My Squeak3.8alpha#6285 stems from upgrading a Squeak3.6 image: could
> this be the reason for the hassle? Is there a difference between an
> actual image and upgrading a 3.6 one?

There is! With the one from
ftp://st.cs.uiuc.edu/pub/Smalltalk/Squeak/3.8alpha/Squeak3.8a-6285-unstable.zip
I have times like Stef (same magnitude, I have a slower processor)!

Why is there this difference?

Conclusions:
- The BehaviorHashEnh cs is *not* needed for an *actual* image *not*
being reached by incremental upgrading.
- This result could be relevant for people just incrementally upgrading
their images!


Greetings
Stephan

> 
> Stephan Rudlof wrote:
> 
>>Stef,
>>
>>I'm trying to think freshly, since this is very weird: I have measured
>>with a fresh 3.8alpha...
>>
>>My results for the IdentitySet variant have been *much* worser than
>>yours, with or without the cs (which is expected, since the behavior of
>>IdentitySet won't be affected by the cs).
>>For this reason, the idea of the cs has been to introduce Behavior>>hash
>>- using String>>hash - to avoid the default Object>>hash which itself
>>calls ProtoObject>>identityHash. This is also the reason, why the
>>IdentitySet variant remains worse for my system (it just continues to
>>use >>identityHash).
>>But the cs doesn't seem to have a relevant effect in your system,
>>because *your* >>identityHash seems to work much better than mine!
>>
>>Now the question: why?
>>
>>ProtoObject>>identityHash calls a prim: which VM are you using?
>>
>>It would be nice, if some other person would doIt the following
>>expression and post the result together with the VM version (squeak
>>-version) and processor version to get some more data.
>>
>>
>>DoIt
>>----
>>
>>| allClasses allClassesSet block |
>>	allClasses := Smalltalk allClasses.
>>	block _ [allClassesSet _ allClasses asIdentitySet.
>>			[allClasses do: [:class | allClassesSet remove: class]] timeToRun].
>>	{block value. block value. block value}.
>>
>>
>>For me the result is
>>
>>  #(3112 3166 3108)
>>
>>for
>>
>>sr at karl:~/DepS/Tmp$ squeak -version
>>3.7b-5 #1 Mon Jun 14 18:05:35 CEST 2004 gcc 3.3.3
>>Squeak3.7beta of '1 April 2004' [latest update: #5954]
>>Linux karl 2.4.26sr #1 Sun May 23 19:28:24 CEST 2004 i686 GNU/Linux
>>default plugin location: /usr/local/lib/squeak/3.7b-5/*.so
>>
>>at a 366MHz Pentium.
>>
>>Any additional ideas for the huge difference between mine and Stefs
>>results are also welcome.
>>
>>
>>Greetings
>>Stephan
>>
>>stéphane ducasse wrote:
>>
>>
>>>| allClasses allClassesSet block |
>>>	allClasses := Smalltalk allClasses.
>>>	block _ [allClassesSet _ allClasses asSet.
>>>			[allClasses do: [:class | allClassesSet remove: class]] timeToRun].
>>>	{block value. block value. block value}
>>>
>>>one before
>>>	#(27 27 25)
>>>one after
>>>	#(31 35 32)
>>>
>>>| allClasses allClassesSet block |
>>>	allClasses := Smalltalk allClasses.
>>>	block _ [allClassesSet _ allClasses asIdentitySet.
>>>			[allClasses do: [:class | allClassesSet remove: class]] timeToRun].
>>>	{block value. block value. block value}.
>>>
>>>two before
>>>	#(19 19 19)
>>>two after
>>>	 #(37 19 22)
>>>
>>>
>>>I hope this helps. This was with 6273
>>>
>>>Stef
>>>
>>>
>>
>>
> 

-- 
Stephan Rudlof (sr at evolgo.de)
   "Genius doesn't work on an assembly line basis.
    You can't simply say, 'Today I will be brilliant.'"
    -- Kirk, "The Ultimate Computer", stardate 4731.3



More information about the Squeak-dev mailing list