[squeak-dev] Re: Float oddities
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Sat Sep 28 07:11:51 UTC 2013
endianness... in old vm float were stored in big endian, so converting one
int->float is faster than reversing float endianness (as it is programmed
in the vm at least)
2013/9/28 Bob Arning <arning315 at comcast.net>
> 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/20130928/8b167e14/attachment.htm
More information about the Squeak-dev
mailing list
|