On 06/21/2016 02:29 AM, Clément Bera wrote:
Hello John.

I'm just guessing here. Lacking information. It could be:

Guess 1) the vm versions are different.
What version of Pharo do you use ? (world menu>System>About) Something like:
Pharo6.0
Latest update: #60030
What version of Squeak do you use ? (world menu>Help>About this system)
Something like:
Squeak5.0
latest update: #15792
What vm do you use  in both cases ? What does answer ?
In Pharo: Smalltalk vm version
In Squeak: Smalltalk vmVersion

I just downloaded the latest to test on my Linux machine:

Pharo6.0
Latest update: #60101

Pharo VM:
'CoInterpreter VMMaker.oscog-HolgerHansPeterFreyther.1880 uuid: 16138eb3-2390-40f5-a6c8-15f0494936f8 Jun 21 2016 StackToRegisterMappingCogit VMMaker.oscog-HolgerHansPeterFreyther.1880 uuid: 16138eb3-2390-40f5-a6c8-15f0494936f8 Jun 21 2016 https://github.com/pharo-project/pharo-vm.git Commit: 9638b0190a9fc01479bfb752becd96edfd253c8c Date: 2016-06-21 12:29:26 +0200 By: GitHub <[email protected]> Jenkins build #594
'

Squeak:
Image
-----
/home/brant/Smalltalk/Squeak/SpurTrunkImage.image
Squeak5.1
latest update: #16066
Current Change Set: Unnamed1
Image format 6521 (32 bit)

Virtual Machine
---------------
/home/brant/Smalltalk/Squeak/lib/squeak/5.0-3732/squeak
Croquet Closure Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.1872] Unix built on May 26 2016 15:18:08 Compiler: 4.4.7 20120313 (Red Hat 4.4.7-4) platform sources revision VM: r3732 http://www.squeakvm.org/svn/squeak/branches/Cog Date: 2016-05-26 13:01:37 -0700 Plugins: r3730 http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins CoInterpreter VMMaker.oscog-eem.1872 uuid: 6db6d610-b1a5-4f4d-978d-22c917bdb3e4 May 26 2016 StackToRegisterMappingCogit VMMaker.oscog-eem.1860 uuid: 4d58d995-ee0c-4330-9190-adfa038e8f24 May 26 2016

Starting the image, opening a workspace/playground, and executing "Time millisecondsToRun: [1 to: 100000000 do: [:i | Object new]]" 10 times, I got these times in Pharo:

"2147" "2303" "1177" "1127" "1153" "1179" "1162" "1136" "1262" "1148"

Closing that image, and doing it again, I got these:

"2128" "2210" "2239" "2051" "2040" "2070" "2087" "2166" "2060" "2078"

Doing it once in Squeak, I got:

1183 1189 1193 1189 1216 1238 1193 1273 1218 1214

I done it a few more times in both, and Squeak always had times from the upper 1100's to the upper 1200's, but Pharo had times from the low 1100's to the 2300's.

Guess 2) the machine code zone size are different
Can you try in Squeak:
Smalltalk vmParameterAt: 46
and in Pharo:
Smalltalk vm parameterAt: 46.

Is it the same ?
It's the number of bytes of the machine code zone. If you need
performance and you can afford wasting an extra Mb, you can speed it up
by doing:
Smalltalk vm parameterAt: 47 put: ((Smalltalk vm parameterAt: 46) * 2)
And then restarting the image.
Don't grow over 2Mb.

They are both 1MB.

Guess 3) the UI is known to be much slower in Pharo. Can you try
headless or after ticking "Server mode" In the Pharo settings in System.

This appears to be what is causing the problem. Even though I'm not using any UI when I run my code, it must be doing something in the background that is causing the slowdown. When I ran my model code headlessly in Pharo, it actually finished the 2 minute job a couple seconds faster than the headless Squeak image (instead of 30 seconds slower).


John Brant

Reply via email to