From: Peter Hickman Date: 2006-08-08T17:43:37+09:00 Subject: Re: For performance, write it in C - Part 3, Source code now available Isaac Gouy wrote: > Peter Hickman wrote: > >> Actually this is a miss reading. >> > > What is a misreading? > That all the implementations had to use the same Perl pre compute phase. That was just the way I did mine and I think that people have taken it as read that this is a requirement. Despite the Ruby Ocaml and C++ versions not doing this. >> The whole point of the first post was >> to point out that the speed up from going from Perl (or any scripting >> language) to C. I used the same Perl code to pre compute values to >> create the C header file because I already had code at this point that >> did the work and the impact of doing the pre compute was pretty much >> insignificant to the overall run time. I then used to same technique to >> get the Java implementation. I have never claimed that the C version was >> the best possible implementations only that it delivered a massive >> performance boost. I think that I have proven that. >> > > Now I'm puzzled - isn't that just conventional wisdom? Isn't it > conventional wisdom that a program transformed by an optimizing > compiler will be faster than a program interpreted at runtime? > It's the degree of speed up that I felt that people are overlooking, lets take the following: Ruby 10.060 (user + sys) C 3.350 Ocaml 2.558 C doesn't just shave a few percentage points off, you get a massive boost without having to do anything weird. C seems to be /too hard/ for many people, especially people who have never used it. However Ocaml is an eye opener. >> The only requirement is that I can get an implementation of the language >> in question on my Macintosh. >> > > D and Clean are other languages you might look at, but using a > different language won't make what you're trying to do any more > feasible. > True, but as I've said before C is a fragile language to work in if you've come from a scripting background. A program will compile and then crash with not the slightest hint at what went wrong, so any language that will allow me to get that sort of performance with a better support is a good thing. I will be learning Ocaml for this reason alone.