SCO MicroSoft C Compiler comments
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.
More information about the Comp.unix.i386