<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
<!ENTITY base CDATA "../..">
<!ENTITY date "$FreeBSD$">
<!ENTITY title "FreeBSD &java; Project: Performance Comparison">
<!ENTITY % navinclude.developers "INCLUDE">
]>
<html>
&header;

<h3>Introduction:</h3>
<p>Much has been talked about recently with Sun's decision to release an 
official port of Java for Linux.  This study was done to compare the 
actual performance of the <a href="http://www.blackdown.org">Blackdown</a> 
Linux Port with the <a href="http://www.FreeBSD.org/java/">FreeBSD Port</a> 
of the &jdk;.</p>

<h3>Summary:</h3>
<p>The Linux port is faster than the FreeBSD port, even when the JITs are taken
into account.  For graphic intensive applications, all the FreeBSD tests are
faster than the Linux, with FreeBSD/TYA being the fastest overall.  Comparing
the Linux port with the FreeBSD port, each with no JIT running, FreeBSD is 
faster. We may conclude that, when running on FreeBSD, the JIT design 
makes the difference in speed. </p>


<h3>Testing Methods:</h3>
<p>All tests were run on FreeBSD 3.4-RC (Tue Dec 7 09:14:51 EST 1999) on a
Dual Pentium 200 SMP machine with 128 Megs RAM.  Tests were conducted with 
Pendragon Software's <a href="http://www.webfayre.com/pendragon/cm3/index.html">
Caffeine Mark</a> 3.0 software using the "Run all tests locally" option.</p>

<h3>Software Versions:</h3>
<p>The following is a list of the software used in this test:
<br>FreeBSD JDK 1.1.8
<br>Blackdown's JDK 1.2.2-RC3 (under Linux emulation)
<br><a href="http://www.shudo.net/jit/">ShuJIT</a> 0.3.13
<br><a href="ftp://gonzalez.cyberus.ca/pub/Linux/java/tya15.tgz">TYA</a> 1.5
</p>

<h3>Summary Results</h3>
<table class="tblbasic">
<tr>
<th></th>
<th>Test 1</th>
<th>Test 2</th>
<th>Test 3</th>
<th>Test 4</th>
<th>Test 5</th>
<th>Average</th>
</tr>
<tr>
<td>Linux JDK 1.2.2/no JIT</td>
<td>222</td>
<td>223</td>
<td>224</td>
<td>225</td>
<td>222</td>
<td>223</td>
</tr>
<tr>
<td>FreeBSD JDK 1.1.8/no JIT</td>
<td>247</td>
<td>247</td>
<td>247</td>
<td>250</td>
<td>247</td>
<td>246</td>
</tr>
<tr>
<td>Linux JDK 1.2.2/standard JIT</td>
<td>539</td>
<td>550</td>
<td>543</td>
<td>544</td>
<td>535</td>
<td>542</td>
</tr>
<tr>
<td>FreeBSD JDK 1.1.8/shujit</td>
<td>373</td>
<td>376</td>
<td>369</td>
<td>374</td>
<td>373</td>
<td>373</td>
</tr>
<tr>
<td>FreeBSD JDK 1.1.8/TYA</td>
<td>478</td>
<td>477</td>
<td>478</td>
<td>479</td>
<td>483</td>
<td>479</td>
</tr>
</table>

<h3>Sample Detailed Results:</h3>
<table class="tblbasic">
<tr>
<th></th>
<th>Sieve</th>
<th>Loop</th>
<th>Logic</th>
<th>String</th>
<th>Float</th>
<th>Method</th>
<th>Graphics</th>
<th>Images</th>
<th>Dialog</th>
</tr>
<tr>
<td>Linux JDK 1.2.2/no JIT</td>
<td>380</td>
<td>434</td>
<td>433</td>
<td>489</td>
<td>363</td>
<td>337</td>
<td>306</td>
<td>25</td>
<td>40</td>
</tr>
<tr>
<td>FreeBSD JDK 1.1.8/no JIT</td>
<td>318</td>
<td>456</td>
<td>434</td>
<td>393</td>
<td>381</td>
<td>381</td>
<td>344</td>
<td>77</td>
<td>37</td>
</tr>
<tr>
<td>Linux JDK 1.2.2/standard JIT</td>
<td>1361</td>
<td>2005</td>
<td>3354</td>
<td>872</td>
<td>1161</td>
<td>1802</td>
<td>247</td>
<td>28</td>
<td>40</td>
</tr>
<tr>
<td>FreeBSD JDK 1.1.8/shujit</td>
<td>800</td>
<td>1566</td>
<td>2191</td>
<td>588</td>
<td>1010</td>
<td>101</td>
<td>317</td>
<td>79</td>
<td>37</td>
</tr>
<tr>
<td>FreeBSD JDK 1.1.8/TYA</td>
<td>712</td>
<td>1467</td>
<td>2352</td>
<td>949</td>
<td>1078</td>
<td>512</td>
<td>357</td>
<td>74</td>
<td>38</td>
</tr>
</table>

<h3>Conclusion:</h3>
<p>Newer versions of the software used in the tests above been released since
 this test was conducted.  For this reason, these tests will be run again in 
the near future to see if the newer JITs for FreeBSD alter the results.  
The same JITs will be used with the Linux JDK to test their effects as well.</p>

<h3>Tester:</h3>
<p>These tests were conducted by Patrick Gardella <a href="mailto:patrick@FreeBSD.org">patrick@FreeBSD.org</a> in December 1999.</p>
&footer;
</BODY>
</HTML>
