Skip to main content
aboutsummaryrefslogblamecommitdiffstats
blob: 357c89a100b105ecdbfe8b0d41bc850aa8d84dad (plain) (tree)
1
2
3
4
5
6
7
8
9


                                       


                                                                       


                                 
                 
                                               
 


                                                                        


                                       
                                                                      


                                                         








                                                                            
     
 


                                                                   


















































                                                                                          

                               


                                                                        

    







                                                                       
     


       
<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: 2007/05/18 13:54:37 $</p>

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

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

Checking of the cache 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>
	<li>Launch Eclipse</li>
	<li>Checkout several projects</li>
	<li>Open the Element Tree Spy to get the memory footprint. At the
	time of writing, CVS is the main user of these structures. In future
	test, ensure that others are not contributing to the tally.</li>
	<li>Disconnect all the projects</li>
	<li>The Element Tree Spy memory footprint should be reduced
	accordingly</li>
</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>
	<li>Open the Element Tree Spy to get the memory footprint.</li>
	<li>Perform a merge</li>
	<li>Open the Element Tree Spy to get the memory footprint. The
	only increase should be in the synchronizer.</li>
	<li>Remove the merge from the sync view</li>
	<li>The Element Tree Spy memory footprint should be reduced
	accordingly</li>
</ol>

</body>
</html>

Back to the top