res@cblpe.ATT.COM (Rob Stampfli) (10/05/87)
x I recently ported the Dhrystone Version 1.1 software to my Atari 800xl and compiled it using the CC8 compiler recently posted by Steve Kennedy. I then recoded the program in the Action! language and ran it. Here are the results: CC8 Version 2.3b, Ace-C Runtime Engine: 7.8 dhrystones/sec Action! Version 3.6: 131 dhrystones/sec By way of comparison here are how some other common micro's performed: Commodore 64, C Power 2.9 trim: 34 dhrystones/sec Commodore 128, C Power 128 trim: 68 dhrystones/sec IBM PC/XT, MS-DOS 2.0, Microsoft 3.1 C: 347 dhrystones/sec Atari 520ST, TOS, Lattice 3.03.01: 450 dhrystones/sec Amiga 1000, Manx C 2.30a, 32 bits: 684 dhrystones/sec Amiga 1000, Manx C 2.30a, 16 bits: 915 dhrystones/sec Atari 520ST, TOS, Megamax 1.0: 1136 dhrystones/sec IBM PC/AT, PC-DOS 3.20, Microsoft 4.0: 1796 dhrystones/sec Comments: The dhrystone program is designed to generate a "figure of merit" benchmark of a particular computer / compiler combination. It consists of a statistically typical set of operations, minus i/o and floating point, invoked repeatedly and timed. The results are indicated in iterations/sec. Published statistics exist for literally hundreds of machine/compiler combinations. In getting these programs to run, I had to make several modifications, which I believe did not significantly alter the final results. Since CC8 does not recognize 'typedefs', I had to rewrite the code so as not to use them. Action!, of course, is an entirely different language, but I took care to port the code faithfully. Surprisingly, the only area where I had trouble making a direct port involved a doubly dimensioned array. Action! does not support this, so I had to define a large singly dimensioned array and generate the index manually. The dhrystone package was, by design I believe, not optimally written in C, and could have been made for efficient during the rewrite, if that had been a goal. The results speak well of the machine and compilers. CC8 is a real jewel, the best C compiler I have seen for the Atari, and Steve has taken pains to include most of the constructs found in the full implementation of C. This was substantiated by the ease of the port. However, CC8 is interpretive, so you would not expect it to be a stellar performer in the speed category. Action! is marketed by OSS, Inc., and is a true compiler plus development system on a plug-in Atari cartridge. Not only does it possess a phenominal human interface, but the code it produces is well known to run like a bat out of hell. Too bad it is a language which has never been available on anything but the 8-bit Ataris. One concern I had was that Action! stores string variables internally in a different format from C. I don't think this is significant in the operation of the program, so I did not go out of my way to try to mimic C here, but rather let Action do its thing. I never expected to break 100 dhrystones/sec even if I coded in assembler. To do this on an 8-bit machine with a clock speed of less than 2 Mhz is truely impressive. I did not try a port to Basic, but it would be interesting to see what kind of figures this would produce. Any takers? Robert Stampfli cbosgd!cblpe!res