Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] Indexing in 6.0.2

Steve,
that's good news.
 
The read-only PDOMs are acessed via the same techniques as the project PDOM. So, no they are not loaded into
memory. All PDOMs share a memory cache, the maximum size of which you can configure in the preferences.
 
When using read-only pdoms an additional layer that combines multiple PDOMs to an index comes into play. It does use some additional memory, however that should not count up to 200M. I would think that there is a bug that causes the additional memory consumption.
 
Markus.
 


From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Kennedy, Stephen M (Steve)
Sent: Thursday, December 03, 2009 3:47 PM
To: CDT General developers list.
Subject: RE: [cdt-dev] Indexing in 6.0.2
Importance: Low

Thanks Markus.  You convinced me I needed to look into this deeper and sure enough I think I've identified the difference between 6.0.1 and 6.0.2 for me.  I recently started using the ReadOnlyPDOMProvider feature of the CIndex extension point and the difference between 6.0.1 and 6.0.2 seems to be in the way that symbols/files in the external pdom are handled.  In 6.0.1, those symbols/files are added to the project's index, while in 6.0.2, they are not.  This seems to be a "good thing" to me since it reduces the size of the project's index file.
 
The increased memory usage in 6.0.2 seems to be related to the size of the external pdom--which happens to be around 200M.  If I disable the external pdom, then 6.0.2 behaves the same as 6.0.1 (in terms of memory usage and size of project index produced).  Are external pdoms read into memory?
 
Steve Kennedy
Alcatel-Lucent


From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Schorn, Markus
Sent: Thursday, December 03, 2009 4:28 AM
To: CDT General developers list.
Subject: RE: [cdt-dev] Indexing in 6.0.2

Hi Steve,
there should not be much of a difference between 6.0.1 and 6.0.2. Please raise a bug so that we can track the issue
until it is resolved.
 
It is unlikely that there is such a great differnece in the number of files actually parsed. It might be the case that we have a problem in counting the files, I'll need to double check. You can help by providing the following information:
 
How do the resulting databases (workspace/.metadata/.plugins/org.eclipse.cdt.core/*.pdom compare in size?
What's the exact version you have been testing with?
You can trace the application to figure out the exact sequence of files being parsed.
 
Tracing the CDT indexer:
* use command line option -debug <options-file>
* put the following in the options file:
 
# turns on tracing for the cdt-core plugin
org.eclipse.cdt.core/debug=true
 
# Reports sequence of files indexed
org.eclipse.cdt.core/debug/indexer/activity=true
 
# Reports statistics for indexer
org.eclipse.cdt.core/debug/indexer/statistics=false
 
# Reports unresolved inclusions for indexer
org.eclipse.cdt.core/debug/indexer/problems/inclusion=false
 
# Reports scanner-problems for indexer (other than unresolved includes)
org.eclipse.cdt.core/debug/indexer/problems/scanner=false
 
# Reports syntax-problems for indexer
org.eclipse.cdt.core/debug/indexer/problems/syntax=false
 
# Reports problems for indexer, including inclusion-, scanner-, syntax- and resolution-problems.
org.eclipse.cdt.core/debug/indexer/problems=false


From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Kennedy, Stephen M (Steve)
Sent: Thursday, December 03, 2009 2:03 AM
To: CDT General developers list.
Subject: [cdt-dev] Indexing in 6.0.2
Importance: Low

I've been playing around with 6.0.2 integration builds because and I've noticed a couple of big differences in indexing behavior compared with 6.0.1:
 
- Increased heap usage in 6.0.2 during indexing
With 6.0.1, I could index my project with -Xmx400m.  In 6.0.2, I need -Xmx600m to avoid out of memory or horrible performance.  Any ideas why?
 
- Fewer headers are being indexed (same code base, same settings):
6.0.1: C/C++ Indexer: Project 'all' (2021 sources, 8072 headers)
6.0.2: C/C++ Indexer: Project 'all' (2021 sources, 3581 headers)
 
Since in neither case am I getting any inclusion errors, I'm wondering if in 6.0.1 the extra 4,500 header were being indexed unnecessarily?  "Index source files not included in the build" and "Index unused headers" are both unchecked in the Preferences.
 
Thanks,
Steve Kennedy
Alcatel-Lucent
 

Back to the top