<html><head><title>Resource Data Structures</title>
<LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css>
<meta NAME="keywords" content="">
<meta NAME="since" content="">
</head><body><h2>Resource Data Structures</h2>
<p>Since: 3.0<br>
Last Modified: $Date: 2004/06/01 13:53:59 $</p>

This section contains results on memory footprint of CVS in the Core resource
plugin data structures. More specifically, CVS uses the session and persistant property
caches along with the synchronizer.

<h3>CVS Workspace Sync info caches</h3>

Checking of the cahce usage requires the use of the Core spy tools. To
obtain the memory footprint, perform the following steps.

<ol>
<li>Install the Core Spy Tools
<li>Launch Eclipse
<li>Checkout several projects
<li>Open the Element Tree Spy to get the memory footprint. At the
time of writting, CVS is the main user of these structures. In future
test, ensure that others are not contributing to the tally.
<li>Disconnect all the projects
<li>The Element Tree Spy memory footprint should be reduced accordingly
</ol>

The following snapshot of the resource element tree was taken after checking out all of the projects
(294 as of 2004/05/31) in dev.eclipse.org.

<pre>
Total resource count: 89,466
	Team private: 10,186
	Phantom: 4,055
	Markers: 0
	SyncInfo: 10,432
Number of layers: 15
Number of nodes: 89,514
Number of non-identical strings: 48,456
Total memory used by nodes: 23,141,343
	Nodes and ResourceInfo: 8,586,108
	Strings: 3,584,724
	Markers: 0
	Sync info: 1,447,861
	Session properties: 9,522,650
		class [B: 2,618,076
		class [Ljava.lang.Object;: 2,564,448
		class org.eclipse.core.internal.utils.ObjectMap: 1,700,240
		class [C: 1,454,994
		class java.lang.Long: 610,800
		class java.lang.String: 286,580
		class org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo: 285,292
		class java.util.ArrayList: 768
		class org.eclipse.team.internal.ccvs.core.util.StringMatcher: 660
		class org.eclipse.team.internal.ccvs.core.util.FileNameMatcher: 320
		class [Ljava.lang.String;: 300
		class org.eclipse.core.runtime.QualifiedName: 160
		class java.lang.Object: 12
The top 20 equal but non-identical strings are:
	A.java->2,002
	in->1,219
	plugin.xml->913
	out->794
	A_out.java->489
	A_in.java->487
	eclipse->431
	org->421
	Test.java->412
	B.java->345
	build.properties->297
	I.java->269
	internal->256
	about.html->253
	plugin.properties->243
	.cvsignore->227
	.classpath->209
	ui->185
	src->184
	package.html->165
</pre>

<h3>CVS Merge memory usage</h3>
Merging in CVS makes use of the Core synchronizer. Perform the following steps 
with the Core Spy Tool installed to
ensure proper memory management.

<ol>
<li>Checkout one or more projects
<li>Open the Element Tree Spy to get the memory footprint. 
<li>Perform a merge
<li>Open the Element Tree Spy to get the memory footprint. The only increase
should be in the synchronizer.
<li>Remove the merge from the sync view
<li>The Element Tree Spy memory footprint should be reduced accordingly
</ol>
</body></html>