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
vm-dev@lists.squeakfoundation.org