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 languagesAll 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
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
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
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
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.
ProcedureTwenty-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.
ObservationsAlthough 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