SCO MicroSoft C Compiler comments

John Plocher plocher%sally at Sun.COM
Tue Sep 12 12:36:27 AEST 1989


>In article <123591 at sun.Eng.Sun.COM>, plocher%sally at Sun.COM (John Plocher) writes...
>They provide Microsoft C as their default compiler, but they also give you 
>a version of pcc.  When the two are benchmarked, MSC comes out looking faster!
>  ...
>Some sluthing later, it turns out that the version of pcc that SCO provides
>with their 3.2 system is considerably slower than that provided by AT&T's 3.2!

I get to eat some crow here.

First off, my apologies to SCO, and specifically to their compiler and tools people.
(Hi Dave :-)

I did some extensive benchmarks this weekend with several different compilers
on the same hardware platform, and it turns out that I was very wrong.

For this posting I will only refer to Dhrystone 1.1 benchmarks (200,000 loops), but
other programs seem to show the same results.

I used an Intel 301 machine (16 Mhz, no cache, 4MB RAM) for all these tests.
I used SCO Unix 3.2 as the base Operating System for all the tests; the compiler
subsystems were used in their complete form (Include files, Libraries, startup files,
tools, etc were consistant with the compiler being tested.  Thus the SCO versions of
cc, as, and ld were used when testing the SCO compilers, the Microport versions of
the same were used when testing the Vr3.0 compiler, and the ATT 3.2 environment 
was used for the Vr3.2 tests.  (I loaded each SoftDev package into its own sub-
directory and used gencc to generate a customized "cross compiler" for each package)

Compiler systems tested
	Compiler	abbreviation	Derivation
	--------	------------	----------
	SCO Unix 3.2 cc    (MSC)	Microsoft
	SCO Unix 3.2 rcc   (rcc)	ATT pcc
	Microport 3.0e cc  (ucc)	ATT pcc
	ATT 3.2 4.1.6 cc   (pcc)	ATT pcc
	Metaware Hi-C 2.2a (Hi-C)	Metaware

The SCO "rcc" compiler had different binaries than the ATT 4.1.6 "cc", but
that *could* be explained if the "rcc" package was based on the 4.1.5 compiler.
No matter, the 2 are quite similar and both produce nearly identical code.

The MSC and pcc based compilers all produced numbers in the same ranges, with the
Optimized MSC compiler generating code that ran about 1-2 seconds faster than
the pcc code (this translates into about 300 dhrystones difference).  The Metaware
code was about twice as fast as that produced by any of the other compilers.

I found the following dhrystones for each of these compilers.  Except for
the Metaware compiler all the compilers are statistically in the same
ballpark, with a slight edge to MSC.  (NOTE: the numbers only have an
accuracy of about +/- 150 because of timing granularities)

The Microport 3.0 compiler seemed to bracket the slower end of the spectrum,
but the results *of this one benchmark* are not really conclusive.  It is worth
noting, though,  that the rcc and pcc compilers are more mature versions of that
shipped by Microport.

	Compiler	cc     cc -O
	--------	----   -----
	Hi-C		4400 - 6400

	MSC		2300 - 3400
	rcc		2400 - 3200
	pcc		2400 - 3200
	ucc		2400 - 3100


The only explanation I have for the earlier comments is that the testing was done
on 2 different machines with different memory configurations.  The recent talk
about _Unix_Today_ made me realize that I was guilty of the same lack of "controls".
Again, I am sorry about the inaccurate comments I posted earlier.

	-John Plocher



More information about the Comp.unix.i386 mailing list