Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Indexing performance

Hello Vyacheslav,

Before going anywhere deeper, I would suggest collecting some basic data:

   - What is your host OS ?
   - Where are the files located (local disk / NFS) ?
   - Is your indexer setup reasonably correct (include paths, preprocessor macros; #unresolved symbols statistics) ?
   - How many files are you looking at ?
   - Do you use many C++ templates ?
   - Running Eclipse under "time" when reparsing your project, what is the amount of user / sys / real time ?

To give you some reference point, I've been indexing a project with 150.000 files (mostly C but some C++)
On a Linux box, all files local, with 0.33% unresolved symbols in 90 minutes real-time (user: 60 min, sys: 4 min).
Note that you need -vmargs -Xmx2048m -XX:MaxPermSize=512m for such a large project.
Details here:

As you see, 30 % of the time goes into plain file access, waiting for the disk (90 min real - 60 min user).
Personally I do not think that there is much optimization potential left in this scenario -- the index has to
be a shared database, so I don't see much potential for improvements by multi-threading here.

I think the easiest way for you to get to these numbers is this, using the "time" command on Linux 
(on Windows you could probably use Task Manager and read the numbers):

   1. Set up your project In Eclipse. Make sure that Preferences "Refresh Workspace on startup" is OFF.
   2. Window > Show View > Other : Errorlog and look at the indexing statistics. 
        - unresolved includes should not be too many, unresolved symbols should be < 5% 
        - if these criteria are not met, you likely have incorrect config of macros/includes, and a massive index quality problem.
   3. Quit Eclipse
   4. time eclipse
   5. Right-click project > Index > Rebuild

I'm curious to see what numbers you have.

Martin Oberhuber, SMTS / Product Architect - Development Tools, Wind River
direct +43.662.457915.85  fax +43.662.457915.6

-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Vyacheslav Chigrin
Sent: Thursday, February 07, 2013 10:01 PM
To: cdt-dev@xxxxxxxxxxx
Subject: [cdt-dev] Indexing performance


I am using Eclipse CDT on very large C++ project and I am very interested in improving indexing performance. Searching web shows that there are already a lot of work performed in this direction. I am very new in Eclipse developing, so I am asking - is there known good start point for this task? Are there any known bottle necks? Is parallel indexing considered to do it faster on multi-core systems? I will be happy If I could to do anything useful for the project.

Thank you,
cdt-dev mailing list

Back to the top