<html><head><title>Timings</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>Timings</h2>
<p>Since: 3.0<br>
Last Modified: $Date: 2004/06/01 13:53:59 $</p>

This section contains various timing results and comparisons.

<h3>Overview</h3>

The purpose of this section is to provide a small set of tests that can 
be used to benchmark the Eclipse CVS client. The areas tested are:

<ol>
<li>Checkout
<li>Synchronizing
<li>Updating
</ol>

<h3>Setup</h3>

The following should be considered when obtaining timings:

<ul>
<li>The Progress view in verbose mode can add 20% or more to times. 
In regular mode, it can still add a bit to the time. For these timings,
the view was open but hidden.
<li>The Console view can add as much as 20% to times. For these tests,
the console was turned off entirely.
<li>Running an eclipse operation several times will "warm-up" the code path
due to JIT. The timings for Eclipse were usually the secodn or third
timing obtained.
</ul>

The following numbers were obtained on a 2.8GHz PC running GTK, Sun 14.2
with autobuild off and operations run in the forground. The project used was 
org.eclipse.jdt.tests.refactoring. It has a large number of folders and files 
which give interesting times. The date the timings were obtained were May 31st, 2004
so similar numbers can be obtained for comparison using the project snapshot at that time 
(which can be obtained using a Date tag).

<h3>Checkout</h3>

Checkout of org.eclipse.jdt.tests.refactoring as of 2004/05/31. The timings are
in "mm:ss" and were obtained by obervation (i.e. stopwatch).

<ul>
<li>Eclipse 3.0 over pserver: 3:00 to 3:30 (several timings)
<ul>
<li>Timings increased slightly with progress view visible and considerably
with progress view in verbose mode.
</ul>
<li>CLI over pserver: 3:00 (1 timing)
</ul>

<h3>Synchronize</h3>

Synchronizing of org.eclipse.jdt.tests.refactoring as of 2004/05/31. The timings are
in "mm:ss" and were obtained by obervation (i.e. stopwatch).

<h4>Synchronize with no changes</h4>

<ul>
<li>Eclipse 3.0 over pserver: 0:45
<li>CLI over pserver: 0:42 ("cvs -n update")
</ul>

<h4>Synchronize with all outgoing, no incoming</h4>

<ul>
<li>Eclipse 3.0 over pserver: 1:00
<li>CLI over pserver: 2:20 ("cvs -n update")
</ul>

<h4>Synchronize with incoming changes</h4>

Incoming changes were simulated by loading version v20040106 and
then removing the tag (using a special utility action). This resulted 
in 393 incoming changes.

<ul>
<li>Eclipse 3.0 over pserver: 0:55
<li>CLI over pserver: 0:45 ("cvs -n update")
</ul>

The timing for Eclipse also includes the status command to fetch the revisions for the 393 incoming changes.

<h3>Update</h3>

These timings were obtained using Team>Update for Eclipse and "cvs update ." for the CLI.

<h4>Update with no changes</h4>

<ul>
<li>Eclipse 3.0 over pserver: 1:15, 1:25 (2 timings)
<li>CLI over pserver: 1:15 ("cvs update")
</ul>

<h4>Update with all false outgoing changes (using touch) </h4>

<ul>
<li>Eclipse 3.0 over pserver: 2:20
<li>CLI over pserver: 2:20
</ul>

<h4>Update with incoming changes</h4>

Incoming changes were simulated by loading version v20040106 and
then removing the tag (using a special utility action). This resulted 
in 393 incoming changes.

<ul>
<li>Eclipse 3.0 over pserver: 1:55
<li>CLI over pserver: 1:55 ("cvs -n update")
</ul>

</body></html>