[plt-scheme] Performance Difference (209 -> 301)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I recently updated the "Great Computer Language Shootout"
installation of MzScheme from 209 to 301. I thought it might
interest you to see how things stack up with the new compiler. As
you can see from the results, the new 301 environment is nearly twice
as fast as the 209 series, and the compiler is slightly better (in
most cases).
So, I think Matthew (and the other implementors) deserve a big round
of applause!
Thanks,
- -Brent
Format is MzScheme/Mzc (Compiled) 209 -> MzScheme/Mzc (Compiled)
301. Values are times to execute (smaller is better):
1. ackermann:
N=9 18.776/12.631 -> 7.458/5.111
N=10 83.057/55.121 -> 34.412/24.567
N=11 364.024/500.544 -> 152.54/108.993
2. ary:
N=3000 5.945/3.05 -> 2.441/1.292
N=5000 9.873/5.081 -> 4.045/2.139
N=7000 13.824/7.096 -> 5.646/2.994
N=9000 17.777/9.131 -> 7.260/3.836
3. fibonacci:
N=12 0.039/0.039 -> 0.024/0.023
N=24 0.166/0.123 -> 0.077/0.059
N=32 5.968/4.036 -> 2.509/1.660
4. harmonic:
N=6000000 17.157/12.315 -> 10.776/9.084
N=8000000 22.826/16.380 -> 14.273/12.025
N=10000000 28.590/20.473 -> 17.747/14.975
5. hash:
N=40000 1.048/0.965 -> 0.533/0.525
N=60000 1.542/1.411 -> 0.811/0.736
N=80000 2.209/2.239 -> 0.962/1.103
N=100000 2.771/3.004 -> 1.340/1.368
5. hash2:
N=50 2.049/1.827 -> 0.909/0.838
N=100 3.915/3.482 -> 1.697/1.549
N=150 5.778/5.123 -> 2.483/2.257
N=200 7.619/6.81 -> 3.265/2.977
6. heapsort:
N=20000 1.324/0.745 -> 0.903/0.616
N=40000 2.790/1.516 -> 1.579/0.981
N=60000 4.306/2.292 -> 2.276/1.378
N=80000 5.896/3.132 -> 3.013/1.780
N=100000 7.459/3.957 -> 3.754/2.135
7. matrix:
N=10 0.749/0.433 -> 0.319/0.190
N=200 13.818/7.930 -> 5.751/3.267
N=400 27.682/15.790 -> 11.480/6.497
N=600 41.619/23.658 -> 17.194/9.746
8. nbody:
N=10000 - /5.807 -> - /3.053
N=100000 - /57.837 -> - /30.330
N=1000000 - /578.774 -> - /302.246
9. nestedloop:
N=8 0.213/0.170 -> 0.110/0.093
N=12 1.839/1.414 -> 0.791/0.621
N=16 9.638/7.265 -> 4.034/3.022
N=18 19.196/14.307 -> 7.979/5.874
10. nsieve:
N=7 10.038/5.297 -> 4.840/2.908
N=8 20.332/10.760 -> 9.563/5.561
N=9 41.176/21.731 -> 19.019/11.080
11. nsievebits:
N=7 fail/fail -> 14.781/8.252
N=8 fail/fail -> 29.788/16.445
N=9 fail/fail -> 60.533/33.064
12. pidigits:
N=600 1.395/0.982 -> 0.779/0.565
N=800 2.432/1.711 -> 1.345/0.987
N=1000 3.742/2.641 -> 2.068/1.520
13. regexmatch:
N=100 0.229/0.180 -> 0.277/0.264
N=6000 5.889/4.955 -> 5.081/4.682
N=9000 8.761/7.364 -> 7.529/6.937
N=12000 11.642/9.851 -> 10.003/9.187
14. reversefile:
N=10 3.239/0.822 -> 1.074/0.451
N=15 5.065/1.221 -> 1.692/1.137
N=20 7.023/4.209 -> 2.159/1.4 72
N=25 9.364/4.730 -> 2.611/2.160
15. sieve:
N=300 13.442/5.990 -> 5.822/2.604
N=600 26.843/11.942 -> 11.613/5.172
N=900 40.182/17.868 -> 17.398/7.775
N=1200 53.772/23.871 -> 17.398/7.775
16. spellcheck:
N=4 1.483/1.345 -> 1.007/0.974
N=7 2.327/2.117 -> 1.582/1.525
N=10 3.152/2.879 -> 2.136/2.090
N=15 4.566/4.169 -> 3.098/3.025
17. sumcol:
N=400 1.521/1.178 -> 0.954/0.871
N=700 2.626/2.036 -> 1.657/1.503
N=1000 3.743/2.893 -> 2.351/2.144
N=8000 30.117/22.957 -> 18.625/16.931
18. takfp:
N=8 2.748/1.932 -> 1.368/0.970
N=9 17.268/12.084 -> 8.516/6.030
N=10 110.389/78.058 -> 54.966/38.498
19. wc:
N=1000 12.715/4.394 -> 5.979/2.493
N=1500 19.101/6.571 -> 8.885/3.722
N=2000 25.540/8.751 -> 11.956/4.930
N=2500 31.861/10.960 -> 15.296/6.187
20. wordfreq:
N=5 4.385/4.256 -> 3.753/3.675
N=10 8.417/8.151 -> 7.046/6.943
N=15 12.474/12.095 -> 10.306/10.208
N=20 16.442/16.024 -> 13.607/13.455
N=25 20.479/19.927 -> 16.886/16.723
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (Darwin)
iD8DBQFD1Ak2zGDdrzfvUpURAtjtAJ4yPOR+iEcE63YvnqF0K2kEx928QgCeOn25
2yvH4BGH0txclr64gNRUd6w=
=1KwB
-----END PGP SIGNATURE-----