Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Performance issues with indexer/refresh on large scale project

Ran into this problem long time ago while importing huge project into work space. Indexer participant effectively solved it, dramatically improving performance.

I declared stop participant like here:

public class LocalIndexerSetupParticipant extends IndexerSetupParticipant {
      private boolean postpone = false;
      public boolean postponeIndexerSetup(ICProject project) {
         return postpone;
      }
      public void stopIndexer(boolean stop) {
         postpone = stop;
      }
   }

Then to stop indexer:


              LocalIndexerSetupParticipant participant =
                 new LocalIndexerSetupParticipant();

CCorePlugin.getIndexManager().addIndexerSetupParticipant(participant);

And to release indexer:

              participant.stopIndexer(false);
CCorePlugin.getIndexManager().removeIndexerSetupParticipant(participant);






On 26/01/2010 10:07 AM, Bursian, Achim wrote:
Hi all,
I'm running into serious performance problems with a ~40k files C++ project (standard make project on Solaris/Sparc with ClearCase as SCC). Importing and indexing the project takes hours, which is at least partly caused by a lot of unnecessary files being opened.
Three questions:
* How can I programmatically disable the automatic indexing for a period of time, and reenable it later (I found that it's faster to do a refresh without the indexer running, and doing a full indexer run afterwards)? I'd try to do that in a startup plugin, which would disable indexing, import the project, refresh everything, then run the indexer. Maybe that could speed up things... * I would like to exclude a complete part of the project hierarchy from being seen by Eclipse and CDT. I thought the "filter" setting ("Source folder exclusion pattern") on the CDT source folders property page would do just that, but no. I excluded the "test/" folder and some others with the filter, now it is no longer shown in the project explorer. But monitoring the system with /Solaris dtrace /shows that the whole <projectroot>/test folder hierarchy is still scanned (stat system call) during a refresh, and a lot of files there even get opened (Imakefiles, *.txt, *.xml). This is quite bad, as it contains 20k files that are only testcases and data stuff. Anything I can do? * Is there any general guideline for setting up such a large scale project with CDT, anywhere?
Thanks!
  Achim


_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev



Back to the top