Some things we found when doing performance analysis/benchmarking in a similar
scenario (the general case for Nokia developers):
1) Import time is linear WRT # of source files under
the root.
After about 15K source files under the root it took a
couple minutes to import a project.
At about 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.
We 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.
The 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)
2) 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.
However, 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
unusable.