[plt-scheme] Performance Difference (209 -> 301)

From: Brent Fulgham (bfulg at pacbell.net)
Date: Sun Jan 22 17:37:42 EST 2006

-----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-----


Posted on the users mailing list.