Le 2012-11-06 à 3:50 AM, Hugh Aguilar <hughaguila...@yahoo.com> a écrit :
> I am very impressed that Racket is as fast as it is. I had expected the > compilers such as Gambit to be much faster than the VM-JIT system. If Racket > had a 64-bit x86 assembler available, I might even consider using it instead > of Gambit. > > > Message: 1 > Date: Mon, 5 Nov 2012 08:09:19 -0500 > From: Sam Tobin-Hochstadt <sa...@ccs.neu.edu> > To: Matthew Flatt <mfl...@cs.utah.edu> > Cc: "users@racket-lang.org" <users@racket-lang.org> > Subject: Re: [racket] translate from Racket to Common Lisp > Message-ID: > <CAK=HD+Yyr1R4K6emrgSXqie2c_AmT1BzhLpP1X=1ndxrgzs...@mail.gmail.com> > Content-Type: text/plain; charset=UTF-8 > > It's impressive to note the change in relative performance for Racket > over past 3 years since you published the benchmarks on the blog -- > Racket has gone from slower than Gambit on the majority of benchmarks, > sometimes by a significant margin, to faster on most of them, and > never more than 2x slower (except ctak). For your information, it seems that the change in relative performance has more to do with the change in C compiler over the past 3 years than anything else. The benchmarks were run on Mac OS X with the C compiler available with Xcode. Recently Apple dropped distributing the GNU gcc compiler with Xcode, and the "gcc" program that is installed is actually a version which uses the gcc compiler parser but LLVM as a back-end (i.e. llvm-gcc). That C compiler has bugs which prevent using gcc's computed gotos which are critical for the best performance. This is what Gambit's "configure" script has to say when using llvm-gcc: configure: ************************************************************************** *** *** *** The LLVM GCC compiler that is being used may have a bug in the *** *** compilation of label values (i.e. &&label). This bug was *** *** discovered when compiling Gambit with Xcode on Mac OS X (see bug *** *** ID# 9956714). For this reason the use of computed gotos in the *** *** generated code has been disabled. This greatly reduces the run *** *** time performance. The system runs 5 times slower than when it is *** *** compiled with GNU GCC. It is highly recommended that you use *** *** another C compiler if possible. *** *** *** ************************************************************************** I have suggested to Matthew that he rerun the benchmarks on a linux machine where GNU gcc is the default C compiler. It will be interesting to see how that affects performance. Marc ____________________ Racket Users list: http://lists.racket-lang.org/users