[omniORB] Generating seperate stubs for structs and sequences

Mike Mascari mascarm at mascari.com
Wed Feb 11 15:23:55 GMT 2004


baileyk at schneider.com wrote:

> I'm not convinced that splitting up IDL files into many small files is
> going to save you compile time.  I haven't done detailed analysis, but I
> suspect that the biggest compile time overhead is swallowing the ORB
> headers themselves (template declarations, etc..), and not the headers
> coming out of the IDL compiler.  By splitting up your IDL you will have to
> manage many more source files (and dependencies) and may not see compile
> times improve much if at all.  Reducing C++ compile time is probably best
> tackled by throwing more hardware at it.  Is there any way to distribute
> your C++ compiles to multiple CPUs/machines?  

That's a possibility. We have some extra machines all running the 
same OS, same architecture (RedHat 8.0/x86).

> I'm just afraid you are
> signing up for many many more man hours of work in the long run to save a
> little cpu time.  A better bargain might be to buy more/faster hardware to
> do compiles on.

That can't hurt! What's interesting is that the same omniidl 
generated header is imported into stdafx.h on a client-side 
application. And Microsoft's precompiled header handling allows for 
that application to perform a complete rebuild in about 35 minutes.

The client-side MFC application is just a little less than the 
server-side in terms of k-lines of code *and* includes the MFC 
headers. That's why I tried the latest g++ 3.4 snapshot to see if 
its precompiled header handling might reduce compilation time 
equivalently (or less, since there aren't any MFC headers to include 
on the server-side). It halved the time to about an hour, but it 
still seems unreasonably long. Total code, not including the 
C++-generated stubs is only around 80,000 lines. I even tried 
Intel's new 8.0 compiler which recently added precompiled header 
support. It just segfaults consistently....

I'll pull out a few into separate IDLs and compare the individual 
compile times to see what kind of a percentage gain I get. If it's 
not more than 10% I won't bother pursuing it. But I'm an eternal 
optimist...

Mike Mascari

>>On Tuesday 10 February, Mike Mascari wrote:
> 
> Okay. I'll change it to generate individual IDLs. I was hoping there
> was a backend switch I was missing. Is there an equivalent to 'cc
> -M' that I should be aware of? How do people handle inter-IDL file
> depedency generation? Or is it an issue in 99% of the cases?
> 
> Mike Mascari





More information about the omniORB-list mailing list