Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/5/84; site terak.UUCP Path: utzoo!linus!philabs!cmcl2!seismo!hao!noao!terak!doug From: doug@terak.UUCP (Doug Pardee) Newsgroups: net.works Subject: Re: Ackermania Message-ID: <547@terak.UUCP> Date: Mon, 13-May-85 14:52:35 EDT Article-I.D.: terak.547 Posted: Mon May 13 14:52:35 1985 Date-Received: Thu, 16-May-85 05:54:44 EDT References: <1863@topaz.ARPA> Organization: Terak Corporation, Scottsdale, AZ, USA Lines: 31 I probably should've let this rest, but I can't resist... When I selected the Ackermann function to "benchmark" HLLs vs. assembler I did so knowing that because it was written recursively, the calls would eat C alive. I even recall saying so in my original posting. But now I see news postings and get mail insisting that it was "unfair" to multiply this effect by comparing a VAX against a Z-80A, because the VAX is crippled by having an excruciatingly slow "call" instruction. Now, I personally think that save-everything-in-the-machine-because-we- don't-know-what-the-subroutine's-gonna-do type "call" instructions are a direct result of HLL-mania and thus are fair game, but I'll give the VAX the benefit of the doubt. Dan Hoey was kind enough to pass along the non-recursive version of Ackermann that he'd developed, so I benchmarked that version. The Z-80A didn't do nearly as well this time. This time, it beat the VAX 750, but not the 780. The time for 1 million computations of acker(3,6) (seconds): VAX 750 optimized C -- 59.2u 4MHz Z-80A assembler -- 47.1 VAX 780 optimized C -- 34.4u So I guess that for code which doesn't do a lot of "call" instructions, you *can* make up the CPU time overhead of C code by trading in your Timex/Sinclair 1000 for a VAX, as long as you get at least a 780. -- Doug Pardee -- Terak Corp. -- !{ihnp4,seismo,decvax}!noao!terak!doug ^^^^^--- soon to be CalComp