[squeak-dev] Re: Float oddities

David T. Lewis lewis at mail.msen.com
Sat Sep 28 01:08:12 UTC 2013


On Fri, Sep 27, 2013 at 05:51:33PM -0400, Bob Arning wrote:
> I thought I'd extend the test to an older squeak&vm
> 
> ---interpreter vm (3.8.12) squeak 3.2 ---------
> Float compareTiming: 1 to: 1.0 ==> 496
> Float compareTiming: 1.0 to: 1.0 ==> 761
> Float compareTiming: 1 to: 1 ==> 225
> Float compareTiming: 1.0 to: 1 ==> 494
> ---interpreter vm (5.7.4.1) squeak 4.5 ---------
> Float compareTiming: 1 to: 1.0 ==> 719
> Float compareTiming: 1.0 to: 1.0 ==> 991
> Float compareTiming: 1 to: 1 ==> 312
> Float compareTiming: 1.0 to: 1 ==> 686
> 
> The old one wins.
> 
> Cheers,
> Bob

(CC to vm-dev list)

I get different results on my Linux PC.

- Squeak 3.2 with interpreter VM compiled by Ian, circa 2006:

	Float compareTiming: 1 to: 1.0 ==> 1041
	Float compareTiming: 1.0 to: 1.0 ==> 1432
	Float compareTiming: 1 to: 1 ==> 390
	Float compareTiming: 1.0 to: 1 ==> 1108

- Squeak 4.4 with Ian's 4.4.7-2357 VM, circa 2012:

	Float compareTiming: 1 to: 1.0 ==> 840
	Float compareTiming: 1.0 to: 1.0 ==> 1176
	Float compareTiming: 1 to: 1 ==> 420
	Float compareTiming: 1.0 to: 1 ==> 836

- Squeak 4.4 with my locally compiled 4.12.6.2787 VM (because I cannot use
  Ian's 4.10.2.2614 from squeakvm.org due to a Linux glib compatibility
  problem for the outdated Linux on my PC):

	Float compareTiming: 1 to: 1.0 ==> 782
	Float compareTiming: 1.0 to: 1.0 ==> 1077
	Float compareTiming: 1 to: 1 ==> 461
	Float compareTiming: 1.0 to: 1 ==> 789

Perhaps there are other factors on the Mac platform (compiler changes,
etc) that are affecting the performance. Could you try Squeak 4.4 with
Ian's unix Mac VM from squeakvm.org and see if you get different results?

  http://squeakvm.org/unix/release/Squeak-4.10.2.2614-darwin10.8.0_i386.tar.gz

Dave


> On 9/27/13 2:12 PM, Bob Arning wrote:
> >Following up Herbert's question, I wrote:
> >
> >compareTiming: a to: b
> >"
> >---interpreter vm (5.7.4.1) ---------
> >Float compareTiming: 1 to: 1.0 ==> 719
> >Float compareTiming: 1.0 to: 1.0 ==> 991
> >Float compareTiming: 1 to: 1 ==> 312
> >Float compareTiming: 1.0 to: 1 ==> 686
> >---cog vm (2749)---------
> >*Float compareTiming: 1 to: 1.0  ==> 28162*
> >Float compareTiming: 1.0 to: 1.0  ==> 148
> >Float compareTiming: 1 to: 1  ==> 97
> >Float compareTiming: 1.0 to: 1  ==> 179
> >"
> >
> >^[1000000 timesRepeat: [
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >    a < b.
> >]] timeToRun
> >
> >So, some obvious questions:
> >- in the interpreter vm, why is comparing two floats slower that an 
> >integer and a float?
> >- what's up with Cog? Three tests are faster by the expected ratio and 
> >one took a real dive.
> >
> >Also, the profiler Herbert used could use some attention to the 
> >NewFloat printing:
> >
> >99.9 (898,069)  Multiline1  doOneStep:
> >*77.30000000000001* (694,902)  Multiline1 [HkTestLine] doTests:
> >      73.8 (663,438)  HkRunin [HkTestStation]  canStartNextTest:
> >
> >Cheers,
> >Bob
> >
> 

> 



More information about the Squeak-dev mailing list