delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1998/01/24/00:17:15

From: root AT jacob DOT remcomp DOT fr (root)
Subject: benchmarks
24 Jan 1998 00:17:15 -0800 :
Message-ID: <m0xvW2v-000AK3C.cygnus.gnu-win32@jacob.remcomp.fr>
To: gnu-win32 AT cygnus DOT com

A friend of mine, Christian Jullien, has released a lisp interpreter
written in C. (1)

I thought it would be interesting to see the benchmarks of different compilers
with all optimizations turned on.

Here are his results for the different benchmark functions of his interpreter:
fib, tkl, etc.

;; Gabriel's benchmark for OpenLisp
;; Watcom C 11.0    DOS (32 bits)                 12.30 s.
;; Watcom C 11.0    NT  (32 bits)                 12.50 s.
;; Microsoft C 11.0 NT  (32 bits)                 13.26 s.
;; IBM Visual Age C NT  (32 bits)                 13.30 s.
;; Symantec C 7.2   DOS (32 bits)                 14.06 s.
;; GNU GCC 2.7.2    NT  (32 bits)                 14.21 s.
;; Symantec C 7.2   NT  (32 bits)                 14.46 s.
;; LCC C Compiler   NT  (32 bits)                 15.49 s.
;; Borland C 5.00   NT  (32 bits)                 16.20 s.
;; GNU GCC 2.7.2    DOS (32 bits)                 16.37 s.
;; EGCS 1.0         NT  (32 bits)                 16.72 s.
;; Borland C 5.00   DOS (16 bits)                 29.79 s.
;; Microsoft C 8.0c DOS (16 bits)                 24.83 s.

All benchmarks were done in a pentium 200 with 64MB RAM and NT 4.0.

This impressed me for several reasons. Obviously I was very happy that my
work (lcc-win32) goes faster than Borland C 5.00... a commercial compiler.
But beyond that, it is interesting to note that :

o The absolute differences between the fastet and slower compiler in 32 bits 
  is only 4.42 seconds, i.e. approx 25%. 

o The difference between lcc-win32 and the fastest compiler is 3.19 seconds, 
  i.e. approx 20%. 

o The difference between the best version of gcc and lcc-win32 is only 8%.

o The relatively bad performance of egcs is surprising.


Given that the team for all the system in lcc-win32 is only three people, this
is a reason to be proud of. 

The optimizer I wrote for lcc is based only in one objective:
                        *reduce the code size*
Nothing executes faster than a deleted instruction. This seems to pay well!
Smaller code fits better in the cache, and reduces main memory access.

In the future and if time permits, I will try to improve it by adding CSE
and loop peephole register allocation.

I wonder what is going wrong with egcs, since it is gcc based...
Comments welcome.
---------------------------
(1) For more information on OpenLisp see: http://www.ilog.fr:8001/Eligis
---
Jacob Navia	Logiciels/Informatique
41 rue Maurice Ravel			Tel 01 48.23.51.44
93430 Villetaneuse 			Fax 01 48.23.95.39
France
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019