This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Precompiled headers (or other speed ups)


<<They would just make MW builds go faster too, so GCC still looks
just as lame.
>>

Well I am not so sure about that. Early on, Realia COBOL compiled 10,000
lines/minute on a 4.77MHz PC1. The major competitor was about ten times
slower. That made a real difference.

But after a while, by the time we moved to 25MHz 386's, the difference
was 100,000 lines/minute vs 10,000 lines/minute, and that was not so
critical in practice.

These days, it is probably 1 million lines/minute vs 100,000 lines/minute
or something like that and it does not matter at all.

So absolute speeds are important.

Of course the speeds that Stan is reporting are horribly slow in absolute
terms. The real question is *why* slo slow. 150K lines of decls
to be crunched should not be taking anywhere NEAR that long, since it
is not necessary to generate full code for these decls, or at least 
should not be.

By comparison, if you use GNAT to compile the DEC starlet library, which
is 64,000 lines of very dense declarations, that is with'ed by typical
applications, much as a C++ compiler eats headers with #include, it takes
a few seconds on a fast PC. 

That's too big of a difference in performance to be easily explainable.

In the case of GNAT, we are not at all convinced that the equivalent of
compiled headers would be a win, since the intermediate compiled output
of something like starlet is pretty big (the compressed tree is 10 megs
compared to the source size of 2.2 megs, so you have a lot more I/O).

When I said that I did not consider fast compilation to be a major goal
of gcc, I was talking about the back end and code generator, but if I
understand things clearly, it is the C++ *front end* that is eating up
time here, and that seems surprising.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]