[squeak-dev] Re: Float oddities

Bob Arning arning315 at comcast.net
Sat Sep 28 01:50:22 UTC 2013


FWIW, I reran my 3 tests and the gap in the 2 interpreter versions 
narrowed, but old is still faster. And I still can't guess why a pure 
float compare is slower than a float-int compare.

Cheers,
Bob

Squeak3.2gamma(interp 3.8.12)
1 < 1.0 = #(507 506 500)
1.0 < 1.0 = #(764 776 768)
1 < 1 = #(230 234 238)
1.0 < 1 = #(501 503 496)

Squeak4.5 (cog)
1 < 1.0 = #(23562 28802 28797)
1.0 < 1.0 = #(122 122 125)
1 < 1 = #(87 91 90)
1.0 < 1 = #(151 149 149)

Squeak4.5(interp 5.7.4.1)
1 < 1.0 = #(618 612 605)
1.0 < 1.0 = #(845 845 856)
1 < 1 = #(269 272 269)
1.0 < 1 = #(586 581 591)


On 9/27/13 9:08 PM, David T. Lewis wrote:
> 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
>>>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20130927/db8e9af8/attachment.htm


More information about the Squeak-dev mailing list