RE: [cdt-dev] Performance issues with indexer/refresh on large scale project
clarify, the flexible resource feature that was done for e4 is being contributed
to Eclipse 3.6
Oh, thanks for clarifying : )
On Tue, Jan 26, 2010 at 11:18 AM, <Tim.Kelly@xxxxxxxxx>
things we found when doing performance analysis/benchmarking
in a similar scenario (the general case for
Import time is linear WRT # of source files under the root.
about 15K source files under the root it took a couple minutes to import a
25K source files is took almost 5 minutes. We decided import was the time
you click Finish on a project creation wizard until you can open a source file from
the Project Explorer.
added a timer to
our project creation action posted the project creation time to
the error log the same way the Indexer does (i.e. Indexed '<project>'
....) so we could monitor problematic projects.
majority of time importing is spent querying the file system for file
attribs & directory sublists (refreshing is actually quite fast though
to the user it appears to be a a lingering job)
Indexing time is related to # of file under the source roots. We
introduced the concept of nested source roots but I see the target milestone
was set to 7.0.
for you case of 40K source files, I think you will need e4 (as Doug
already mentioned). I found any project with that many source
files under the root makes the IDE about
Just to clarify, the flexible resource feature that was done for e4
is being contributed to Eclipse 3.6. So you don't need e4, but you will need
the next release of the Platform.
On Tue, Jan 26, 2010 at 10:07 AM, Bursian, Achim
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.
* 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
* 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?
This is actually the Eclipse Platform refreshing your project,
not the CDT. This is one of the main drivers for the Flexible Resources
feature coming in this year's train release, to cut down on what Eclipse
sees in a project directory tree.
* Is there any general guideline for
setting up such a large scale project with CDT,