Benchmarking newLISP (some samples updated to v.9.0, all timings on v.8.3)

As of September 17th, 2004 the shootout at debian.org also contains newLISP as a language.   On the Debian site more iterations are run and memory requirements as well as lines of code are also reported. Brent Fulgham from debian.org is continuing the work Doug Bagley started some years ago.

Rather than continuing separate benchmarks the numbers on this page are copied from the shooutout at debian.org for better objectivity.

Since January/2005 I have stopped updating benchmarks. Too much changes are occurring on the Debian shootout site and too quick to keep up.

Many of the algorithms could be coded more efficiently and shorter using implicit indexing which was introduced in later versions of newLISP.

Another site displaying Doug Bagley's work can be found here: http://dada.perl.it/shootout/


Time to complete a benchmark in different scripting languages

All measurements are in seconds


Perl Python newLISP best
Ackerman 116.27 n/a 94.40 NEWLISP
Array Access 9.54 6.15 10.23 PYTHON
Concatenate 0.03
0.06
0.03
NEWLISP/PERL
Count Words 0.53 0.79 4.39 PERL
Deque Lists 0.73 0.68 0.30 NEWLISP
Echo Client/Server 5.55 n/a 2.52 NEWLISP
Exceptions 3.96 4.38 0.98 NEWLISP
Fannkuch (new) n/a n/a code
Fibonacci Numbers 9.48 6.45 5.69 NEWLISP
Hash Access 0.83 0.51 0.99 PYTHON
Hash Update 6.61 4.16 6.50 PYTHON
Heap Sort
4.92
3.76
6.62
PYTHON
Matrix Multiplication 19.77 0.39 0.21 NEWLISP
Method Calls 9.25
6.82 3.01 NEWLISP
Nested Loops 14.06 10.84 9.97 NEWLISP
Nsieve (new) n/a n/a code
Object Instantiation 32.92 12.36 19.78 PYTHON
Prime 21.67 16.67 29.54 PYTHON
Random Numbers 1.77 2.12 1.51 NEWLISP
Regular Expressions 2.60 3.17 3.84 PERL
Reverse a File 0.41 0.39 1.00 PYTHON
Spell Checker
1.27
1.21
3.01
PYTHON
Startup 0.94 5.69 0.74 NEWLISP
Statistical Moments 1.00 1.00 1.46 PERL
Sum a File of Numbers 8.15 13.63 20.70 PERL
Synchronize n/a
6.25
1.52
NEWLISP
Takfp (new) n/a n/a code
Word Frequency 1.03 1.50 6.78 PERL

For a detail on benchmark methodology see here.

Note that in some of the programs when running version 8.9.4 or greater, the function 'symbol' has to be replaced with 'sym'. The longer writing 'symbol' is deprecated.

Procedure

Twenty-five pieces representing different areas in programing where taken from the Perl, Python code examples and rewritten for newLISP.  The results are shown in the table above. When clicking on the time measurement for a specific language the code can be seen. Special thanks go to Doug Bagley for coding or collecting the code pieces for Perl, Python and Guile and to Brent Fulgham, who now continues this work. As new code for newLISP and the other languages are available it gets copied to this site. Current values shown are from December 1st, 2004, except for the Regex benchmark, which is from September 28th. The shootout site at Debian.org is undergoing frequent changes. Numbers will be updated here from time to time as they become available.

Times marked with 'n/a' have source code most of the time but do not run currently for different reasons. Most of the 'n/a' marked benchmarks worked before on Doug Bagley's website and will eventally on the debian site too.

Observations

Although Perl, Python and newLISP show similar performance, newLISP is fastest in 11 tests, Python in 8 and Perl in 6 in the currently available measurements. In 5 of the tests newLISP is better by a margin of a 100% or more. (Client Server, Exceptions, List Processing, Method Calls and Synchronize). In the Concatenate benchmarks the numbers for newLISP and Perl tie.

copyright © Lutz Mueller, 2004
last updated: 2004-12-03