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