[Metakit] Performance comparison Q

Jean-Claude Wippler jcw at equi4.com
Mon May 9 18:49:57 CEST 2005


To all language specialists: I'm looking for a way to establish some  
basic performance figures, to compare and evaluate a number of  
approaches I'm exploring in the Vlerq project.

As a very first datapoint, it would be nice to find out how one  
writes decent loops for a very simple task: sum the items of a list  
of 50,000 integers, running from 0 to 49,999.  This is quite an  
important operation in MK, where cumulative offsets must often be  
calculated - it also gives an indication how efficient integer lists/ 
vectors are.

The C code is pretty obvious:

     int sum = 0; for (i = 0; i < 50000; ++i) sum += data[i];

This one in tcl 8.4.6 runs at quite a bit under 1% of that speed:

     set sum 0; foreach x $data { incr sum $x }

My question is: how would you write the above in <insert your  
language of choice here> ?

This is not flame bait.  I'm not trying to prove X is better than Y,  
I'm trying to find out what range of performances one sees these  
days, and how much I can get away with for now by *not* optimizing my  
new code to the limit (it also affects some major decisions on what  
internal data structures I should use at this stage).

I'm aware of the various "language shootout" websites, the risks of  
benchmarking, and cache effects.  Still, self-contained examples of  
this logic would help me avoid seriously flawed timings in other  
languages when applied to tasks which are relevant to Metakit.

I'll summarize results.

-jcw

PS.  All timing comparisons are being done using a PIII/650 on  
Linux.  I've got the following installed so far if you're interested:  
python 2.3.4, perl 5.8.5, ruby 1.8.2, php 4.3.10, java 1.4.2, icon  
9.40, gforth 0.6.2, lua 5.0.2 - can add more as needed.


More information about the Metakit mailing list