Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GNU tool to analyze and reduce compile time for my application


I am using SUSE10 (64 bit)/AIX (5.1) and HP I64 (11.3) to compile my application. Just to give some background, my application has around 200KLOC (2Lacs) lines of code (without templates). It is purely C++ code. From measurements, I see that compile time ranges from 45 minutes(SUSE) to around 75 minutes(AIX).

Question 1 : Is this time normal (acceptable)?

Question 2 : I want to re-engineer the code arrangement and reduce the compile time. Is there any GNU tool which can help me to do this?

PS :
a. Most of the question in stackoverflow was related to Visual Studio, so I had to post a separate question.
b. I use gcc 4.1.2 version.
c. Another info (which might be useful) is code is spread across around 130 .cpp files but code distribution varies from 1KLOC to 8 KLOCK in a file.

Thanks in advance for you help!!!

Edit 1 (after comments)
@PaulR "Are you using makefiles for this ? Do you always do a full (clean) build or just build incrementally ?"
Yes we are using make files for project building.
Sometimes we are forced to do the full build (like over-night build/run or automated run or refresh complete code since many members have changed many files). So I have posted in general sense.

like image 779
kumar_m_kiran Avatar asked Dec 16 '22 21:12

kumar_m_kiran


1 Answers

Excessive (or seemingly excessive) compilation times are often caused by an overly complicated include file hierarchy.

While not exactly a tool for this purpose, doxygen could be quite helpful: among other charts it can display the include file hierarchy for every source file in the project. I have found many interesting and convoluted include dependencies in my projects.

like image 90
LaszloG Avatar answered Feb 02 '23 00:02

LaszloG