caf (04/26/83)
Here are some of the benchmarks I ran at the Winter 83 conference as well as some others with CP/M and/or MS-DOS. Sieve benchmark ( Slightly modified from Byte Magazine version) 4-83 Chuck Forsberg CDI cdi!caf #define SIZE 8190 #define SIZEPL 8191 char f[SIZEPL]; main() { register int i,p,k,c,n; for (n = 1; n <= 10; n++) { c = 0; for (i = 0; i <= SIZE; i++) f[i] = 1; for (i = 0; i <= SIZE; i++) { if (f[i]) { p = i + i + 3; k = i + p; while (k <= SIZE) { f[k] = 0; k += p; } c++; } } } printf("\n%d primes.\n", c); } Results "32 bit" systems Sorted by Execution real time Compile - Link Execute Real User Real User Bytes System 1.8 .31 .37 0.2 200 Ahmdal 470-V8 + UTS (160 users) % 25 1.3 0.8 .45 224 Gould SEL 32/87 (loaded) % 27 6.6 1.1 1.0 140 Charles Rivers + Unos % 22 1.8 2.0 1.2 144 Parellel 68k + Zenix # 14.6 - 3.3 - 148 Sun Microsystems 68k 22 1.8 3.7 1.3 144 Parellel 68k + Zenix %# 31 5.5 5.0 4.5 148 Momentum Hawk 32 38 6.8 5.0 3.9 148 CYB Multibox (Sun Board) 41 7.3 6.0 5.2 148 Lisa + Unisoft 15 3.8 9 6 88 VAX 11/730 + 4.1 BSD 45 8.2 9.0 8.2 128 NS16032 6mHz + "4.1 BSD" && Sorted by Compile/link real time Compile - Link Execute Real User Real User Bytes System 1.8 .31 .37 0.2 200 Ahmdal 470-V8 + UTS (160 users) % 14.6 - 3.3 - 148 Sun Microsystems 68k 15 3.8 9 6 88 VAX 11/730 + 4.1 BSD 22 1.8 2.0 1.2 144 Parellel 68k + Zenix # 22 1.8 3.7 1.3 144 Parellel 68k + Zenix %# 25 1.3 0.8 .45 224 Gould SEL 32/87 (loaded) % 27 6.6 1.1 1.0 140 Charles Rivers + Unos % 31 5.5 5.0 4.5 148 Momentum Hawk 32 38 6.8 5.0 3.9 148 CYB Multibox (Sun Board) 41 7.3 6.0 5.2 148 Lisa + Unisoft 45 8.2 9.0 8.2 128 NS16032 6mHz + "4.1 BSD" && Results 8-16 bit systems Sorted by real execution time Compile/Link Execute Text Real User Real User Bytes System 18 1.1 2.0 1.5 96 11/70 + V7 (loaded) 26 3.7 2.1 2.0 110 Zilog Model 11 22 4.9 2.5 2.2 98 Plexus P-25 5 mHz 21 6.4 3.2 2.8 98 Plexus P-40 4 mHz 95 - 7.8 - 126 Control-C CC86 IBMPC CP/M-86 floppies ^ 75 - 10 - 135 Zenith Z100 floppies + Lattice C 1.01 ^ 82 - 11 - 135 IBMPC floppies PCDOS1.1 + Lattice 1.01 ^ 65 - - - 135 IBMPC floppies PCDOS2.0 + Lattice 1.01 & 28 - 11 8.0 126 Coherent +IBMPC +Corvus? 2 users 32 5.9 13 12 152 IBM 4954 (Series/1 middle) - - 22 - - CII C86 1.26 IBMPC CP/M-86 floppies ^! 19 - 31 - - Z89+ CDI MEG-6 +BDS C + L2 + EX ^ Sorted by real compile/link time Compile/Link Execute Text Real User Real User Bytes System 18 1.1 2.0 1.5 96 11/70 + V7 (loaded) 19 - 31 - - Z89+ CDI MEG-6 +BDS C + L2 + EX ^ 21 6.4 3.2 2.8 98 Plexus P-40 4 mHz 22 4.9 2.5 2.2 98 Plexus P-25 5 mHz 26 3.7 2.1 2.0 110 Zilog Model 11 28 - 11 8.0 126 Coherent +IBMPC +Corvus? 2 users 32 5.9 13 12 152 IBM 4954 (Series/1 middle) 65 - - - 135 IBMPC floppies PCDOS2.0 + Lattice 1.01 & 75 - 10 - 135 Zenith Z100 floppies + Lattice C 1.01 ^ 82 - 11 - 135 IBMPC floppies PCDOS1.1 + Lattice 1.01 ^ 95 - 7.8 - 126 Control-C CC86 IBMPC CP/M-86 floppies ^ Notes: % Outer loop increased to 100 and result times adjusted because of fast execution times indicated. # Siginificant difference between real and user times not due to system load (user time suspect). && System still being developed. Compiles size dropped from 136 to 128 bytes and times by >40% during the Unicom show. Stay tuned ... ^ Real time measured from beginning of program execution to program finish (omitting loading and reboot time). & Compile/link times; sequenced by "batch" file; 20 buffers, NO verify. Verify adds about 15 seconds. ! A much faster code generator has been promised. -------------- Comment ------------ These times are approximate and may improve as product development proceeds on the newer systems. They should be used as general information regarding the levels of performance possible and not in any specific purchasing decision. It should be noted that the short loops in this program may penalize highly pipelined machines such as the 16032 more than other programs. The Regulus software is listed with different times in 16 and 32 bit categories because the compiler defaults to 16 bit integers and 16 bit offsets/subscripts. On some systems, there is a considerable discrepancy between the real and user times that cannot be explained by other demands on the system. Usually, the real and user times are nearly the same when a cpu bound program is run on an otherwise unloaded Unix system. The compile/link times are often more significant in predicting how responsive a system will be in a software development context. On BDS C, the variables are made externs to optimize 8080 execution speed and code density. BDS C lacks longs, floats, and some other aspects of C, but it produces reasonable code density and is an excellent compromise for the CP/M environment. Compile times were influenced by the structure of the compiler. The Unix compilers had up to 5 passes (preprocessor, c0, c1, c2, as) while Lattice and BDS C have but two passes to produce object code (BDS uses no intermediate file). Coherent/CC86 has no assembly pass either. Unix, Zenix, VAX, et al. are trade-marks.