Re: [squeak-dev] Re: Float oddities

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: Float oddities

David T. Lewis
 
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
> >
>

>