[comp.os.vms] VAX C compilation speeds on 750

tomc@oakhill.UUCP (Tom Cunningham) (10/16/87)

We have VAX C 2.3 on a VAX 750 running VMS 4.5.  I am rather surprised
at the compilation speeds.  The compiler took 2 1/2 minutes to compile
a 2000 line C program using the /NOOPTIMIZE and /DEBUG options.  On an
IBM PC/AT running DOS 3.2 with Microsoft C 4.00 the same program compiles
in just under 2 minutes using large model and default optimization.

Now I realize this is comparing apples and oranges, but I never thought
a PC would beat a VAX, even a 750, particularly since a Sun 3/50 blows
both of these away (compilation in less than a minute).  All of these
machines may use wildly different compiler technology and that may be
the root of the issue.  Or perhaps our VAX just needs a tuneup (stat()
calls seem to take an inordinate amount of time to service).  Any comments?
-- 
Tom Cunningham        "On the ragged edge of technology."
USPS:  Motorola Inc.  6501 William Cannon Dr. W.  Austin,TX 78735-8598
UUCP:  {ihnp4,seismo,ctvax,gatech}!ut-sally!oakhill!tomc
       sun!oakhill!tomc

tomc@oakhill.UUCP (Tom Cunningham) (10/16/87)

In article <1021@oakhill.UUCP>, tomc@oakhill.UUCP (Tom Cunningham) writes:
> 
> We have VAX C 2.3 on a VAX 750 running VMS 4.5.  I am rather surprised
> at the compilation speeds.  The compiler took 2 1/2 minutes to compile
> a 2000 line C program using the /NOOPTIMIZE and /DEBUG options.  On an
> IBM PC/AT running DOS 3.2 with Microsoft C 4.00 the same program compiles
> in just under 2 minutes using large model and default optimization.
> 

I forgot to mention that I was the only user on the VAX at the time I did
these compiles, and there were no batch jobs running, so it was not very
heavily loaded.
-- 
Tom Cunningham        "On the ragged edge of technology."
USPS:  Motorola Inc.  6501 William Cannon Dr. W.  Austin,TX 78735-8598
UUCP:  {ihnp4,seismo,ctvax,gatech}!ut-sally!oakhill!tomc
       sun!oakhill!tomc

henry@utzoo.UUCP (Henry Spencer) (10/19/87)

> Now I realize this is comparing apples and oranges, but I never thought
> a PC would beat a VAX, even a 750, particularly since a Sun 3/50 blows
> both of these away (compilation in less than a minute)...

The 750 is a much-overrated processor.  It is in fact a little slower than
a pdp11/44, and I think a well-configured AT is a bit faster than a 44.
It is no surprise that a 3/50 does much better than either -- its cpu is
3-4 times as fast.  I/o configuration does also enter the picture, of
course.  As does compiler technology:  the PC compilers quite possibly put
more emphasis on fast compilation (since the PC is useless for anything
else while the compiler is running) while minicomputer compilers generally
work harder on code quality.
-- 
"Mir" means "peace", as in           |  Henry Spencer @ U of Toronto Zoology
"the war is over; we've won".        | {allegra,ihnp4,decvax,utai}!utzoo!henry

HELLER@cs.umass.EDU.UUCP (10/21/87)

There are some other factors the are different between the VAX/VMS C
compiler and most MS-DOS C compilers -

First of all, MS-DOS C compilers probably limit the maximum size of a single
module - afterall, there is a 64K segment-size limitation imposed by the
hardware. This means these compilers can be setup to buffer a module
completely in RAM (which is not paged!). There is no limit on module size on
a VAX (no segments!), and it is also a virtual-memory system. This means
paging. Thus it is posible for a MS-DOS C compiler to buffer things to fast
RAM and save lots of time (including such hacks as pre-allocated
intermediate code space). You can't do this on a VAX and still have a full
production compiler.

Also, you had the /DEBUG option on. This of course means more work for the
compiler, including lots more disk I/O (all of those debug records to spit
out). I suspect that the VAX C compiler has to work just as hard (i.e. take
just as long, if not longer) generating debug records as it does if it is
optimizing. A better test is /noopt/nodebug.

Also:  were you measuring elapesd *real* time or *cpu* time.  Since the VAX
is paging (and has various system detached processes around), you might be
measuring more than you think.  Was the VAX on a network?  Was DECNET
running?  While I won't doubt that the VAX 750 is not a super fast system
and newwer PCs are probably faster (at least at some things) it is posible
that your timings are skewwed by additional factors.

Oh one other thing:  I don't think a SUN 3 is that much faster than a VAX
750, particularly for heavily memory-bound processing.  We (the VISIONS
group) ran some benchmarks and the SUN we had on loan was just about equal
in speed as the VAX 750's we have (things like image processing operations
on a 256x256 image) - SUN's benchmarks are somewhat deceptive - they are
accurate for small/tiny programs (yes the SUN cpu is faster than a VAX 750),
but the VAX pages faster (at least under VMS).  

		Robert Heller
ARPANet:	Heller@CS.UMass.EDU
BITNET:		Heller@UMass.BITNET
BIX:		Heller
GEnie:		RHeller
FidoNet:	321/148 (Locks Hill BBS, Wendell, MA)
CompuServe	71450,3432
Local PV VAXen:	COINS::HELLER
UCC Cyber/DG:	Heller@CS