blob: 1f80325ff6cb3d12ba6f3a947ea9d163e6b405df [file] [log] [blame]
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xalan="http://xml.apache.org/xslt">
<head>
<title>Eclipse WTP performance improvement plan</title>
<link rel="stylesheet" type="text/css" href="../stylesheets/images/default_style.css"/>
</head>
<body>
<table border="0" width="100%" cellPadding="2" cellSpacing="5">
<tr>
<td>
<font class="indextop">Eclipse WTP performance improvement plan</font>
<br/>
<font class="indexsub">Eclipse Web Tools Platform project performance improvements</font>
</td>
<td>
<br/>
</td>
<td width="28%">
<img height="86" width="120" src="../../../development/milestone_plans/stylesheets/images/Idea.jpe"/>
</td>
</tr>
</table>
<table width="100%">
<tr>
<td colspan="2" bgcolor="#0080c0" height="20">
<a name="wstserverM4"/>
<b>
<font color="#ffffff">wst server M4</font>
</b>
</td>
<td/>
</tr>
</table>
<table>
<tr>
<td>
<img height="16" border="0" nosave="" src="../stylesheets/images/Adarrow.gif"/>
</td>
<td>
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/default.gif"/>
<b>Validate server.core plugin startup times</b>
&nbsp;[medium]
</td>
</tr>
</table>
<table>
<tr>
<td valign="top">
<i>Steps:</i>
</td>
<td>
<ol>
<li>
<description>Validate plugin startup and delegate load times</description>
</li>
<li>
<description>Fix delay when right clicking on server in Servers view</description>
</li>
<li>
<description>Set performance benchmarks</description>
</li>
</ol>
</td>
</tr>
</table>
<br/>
<table width="100%">
<tr>
<td colspan="2" bgcolor="#0080c0" height="20">
<a name="wstsseM3"/>
<b>
<font color="#ffffff">wst sse M3</font>
</b>
</td>
<td/>
</tr>
</table>
<table>
<tr>
<td>
<img height="16" border="0" nosave="" src="../stylesheets/images/Adarrow.gif"/>
</td>
<td>
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/defer.gif"/>
<b>
Improve partitioner's performance.
</b>
&nbsp;[medium]
</td>
</tr>
</table>
<table>
<tr>
<td valign="top">
<i>Detail:</i>
</td>
<td>
<detail>
Use separate data structure. Investigate
generated JavaCC parser on JFlex tokens.
This should have a notable effect on the speed
on the scrolling speed in the editor.
</detail>
</td>
</tr>
</table>
<br/>
<table>
<tr>
<td>
<img height="16" border="0" nosave="" src="../stylesheets/images/Adarrow.gif"/>
</td>
<td>
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/defer.gif"/>
<b>
Move to latest version of JFlex
</b>
&nbsp;[medium]
</td>
</tr>
</table>
<table>
<tr>
<td valign="top">
<i>Detail:</i>
</td>
<td>
<detail>
This may help the scrolling speed in the editor.
</detail>
</td>
</tr>
</table>
<br/>
<table>
<tr>
<td>
<img height="16" border="0" nosave="" src="../stylesheets/images/Adarrow.gif"/>
</td>
<td>
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/glass.gif"/>
<b>
Investigate numerous model and document
implementation improvements
</b>
&nbsp;[low]
</td>
</tr>
</table>
<table>
<tr>
<td valign="top">
<i>Detail:</i>
</td>
<td>
<detail>
<ul>
<li>
Add (transparent) model caching (not
just sharing)
</li>
<li>
Limit number of adapter notifications
sent (and/or optimize 2000 peer children
case). This may help speed up the formatter performance.
</li>
<li>
Fix document to model thread
(notification) synchronization
</li>
<li>
Fix "stop/resume" notifications (now
rewrite modes)
</li>
<li>
Investigate improved text store, better
suited to DOM editing
</li>
<li>
Investigate Add "compare" methods, so
less frequent 'gets' are needed
</li>
</ul>
</detail>
</td>
</tr>
</table>
<br/>
<table width="100%">
<tr>
<td colspan="2" bgcolor="#0080c0" height="20">
<a name="wstsseM4"/>
<b>
<font color="#ffffff">wst sse M4</font>
</b>
</td>
<td/>
</tr>
</table>
<table>
<tr>
<td>
<img height="16" border="0" nosave="" src="../stylesheets/images/Adarrow.gif"/>
</td>
<td>
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/default.gif"/>
<b>
Improve "adapt on create" design
</b>
&nbsp;[medium]
</td>
</tr>
</table>
<table/>
<br/>
<table>
<tr>
<td>
<img height="16" border="0" nosave="" src="../stylesheets/images/Adarrow.gif"/>
</td>
<td>
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/default.gif"/>
<b>
Improve "read-only" design
</b>
&nbsp;[medium]
</td>
</tr>
</table>
<table/>
<br/>
<table>
<tr>
<td>
<img height="16" border="0" nosave="" src="../stylesheets/images/Adarrow.gif"/>
</td>
<td>
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/default.gif"/>
<b>
Improve formatter performance
</b>
&nbsp;[medium]
</td>
</tr>
</table>
<table>
<tr>
<td valign="top">
<i>Detail:</i>
</td>
<td>
<detail>
We believe the main problem is excessive notifications for formatting large areas of text.
We should be able to know that formatting is happening, and perform all edits
at once with minimal notifications of elements changing, especially since it's
"only" whitespace being changed.
</detail>
</td>
</tr>
</table>
<br/>
<table>
<tr>
<td>
<img height="16" border="0" nosave="" src="../stylesheets/images/Adarrow.gif"/>
</td>
<td>
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/default.gif"/>
<b>
Investigate "sparse model" design for memory savings
</b>
&nbsp;[medium]
</td>
</tr>
</table>
<table>
<tr>
<td valign="top">
<i>Detail:</i>
</td>
<td>
<detail>
A possible improvement may be to perform a "coarse" parsing the first time though.
That is, only parse StructurdDocumentRegions, then only provide finer details of
those regions upon request. This is more along the lines of "pay as you go",
which seems to be the overall direction of Eclipse.
</detail>
</td>
</tr>
</table>
<br/>
<table width="100%">
<tr>
<td colspan="2" bgcolor="#0080c0" height="20">
<a name="jstwsM4"/>
<b>
<font color="#ffffff">jst ws M4</font>
</b>
</td>
<td/>
</tr>
</table>
<table>
<tr>
<td>
<img height="16" border="0" nosave="" src="../stylesheets/images/Adarrow.gif"/>
</td>
<td>
<img width="13" height="5" src="../../../development/milestone_plans/stylesheets/images/progress.gif"/>
<b>
Automate JUnit performance tests.
</b>
&nbsp;[high]
</td>
</tr>
</table>
<table>
<tr>
<td valign="top">
<i>Detail:</i>
</td>
<td>
<detail>
<ul>
<li>JUnit tests are planned for the following scenarios:</li>
<ul>
<li>Java Web service bottom-up for Apache Axis 1.1 and Apache Tomcat 5.0.</li>
<li>Java Web service skeleton for Apache Axis 1.1 and Apache Tomcat 5.0.</li>
<li>Java Web service client for Apache Axis 1.1 and Apache Tomcat 5.0.</li>
<li>Web Services Explorer logic (ie. without JSPs).</li>
<li>Environment Command Framework.</li>
</ul>
</ul>
</detail>
</td>
</tr>
<tr>
<td valign="top">
<i>Verification:</i>
</td>
<td>
<verification>
<ul>
<li>JUnit tests run regularly as part of the build.</li>
<li>Performance improves incrementally.</li>
<li>Regressions are captured in Bugzilla.</li>
</ul>
</verification>
</td>
</tr>
</table>
<br/>
<table>
<tr>
<td>
<img height="16" border="0" nosave="" src="../stylesheets/images/Adarrow.gif"/>
</td>
<td>
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/glass.gif"/>
<b>
Improve performance and usability of server start up.
</b>
&nbsp;[high]
</td>
</tr>
</table>
<table>
<tr>
<td valign="top">
<i>Detail:</i>
</td>
<td>
<detail>
<ul>
<li>Start server on a thread other than the main Eclipse GUI thread.</li>
<li>Report progress to the user.</li>
<li>Enable the user to hit Cancel or Back to escape the process.</li>
<li>Dispatch all remaining Commands at time of "Finish" in an Eclipse job.</li>
</ul>
</detail>
</td>
</tr>
<tr>
<td valign="top">
<i>Verification:</i>
</td>
<td>
<verification>
<ul>
<li>Eclipse GUI and wizard remains responsive during server startup.</li>
<li>Eclipse wizards are dismissed at moment of "Finish".</li>
</ul>
</verification>
</td>
</tr>
</table>
<br/>
<table>
<tr>
<td>
<img height="16" border="0" nosave="" src="../stylesheets/images/Adarrow.gif"/>
</td>
<td>
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/glass.gif"/>
<b>
A-modal wizards.
</b>
&nbsp;[high]
</td>
</tr>
</table>
<table>
<tr>
<td valign="top">
<i>Detail:</i>
</td>
<td>
<detail>
<ul>
<li>Launch Web service wizards as a-modal such that the main Eclipse GUI is still available for us.</li>
</ul>
</detail>
</td>
</tr>
<tr>
<td valign="top">
<i>Verification:</i>
</td>
<td>
<verification>
<ul>
<li>Eclipse main GUI is available for use at all times during the wizard.</li>
</ul>
</verification>
</td>
</tr>
</table>
<br/>
<table>
<tr>
<td>
<img height="16" border="0" nosave="" src="../stylesheets/images/Adarrow.gif"/>
</td>
<td>
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/glass.gif"/>
<b>
Remove unnecessary server/application restarts.
</b>
&nbsp;[medium]
</td>
</tr>
</table>
<table>
<tr>
<td valign="top">
<i>Detail:</i>
</td>
<td>
<detail>
<ul>
<li>Refactor commands to push server startup and project restart to as late as possible.</li>
<li>Where possible, refactor scenarios to include only a single publish action.</li>
</ul>
</detail>
</td>
</tr>
<tr>
<td valign="top">
<i>Verification:</i>
</td>
<td>
<verification>
<ul>
<li>Use JUnit tests to measure elapsed time.</li>
<li>Monitor servers and applications to ensure they are not restarted unnecessarily.</li>
</ul>
</verification>
</td>
</tr>
</table>
<br/>
<table>
<tr>
<td>
<img height="16" border="0" nosave="" src="../stylesheets/images/Adarrow.gif"/>
</td>
<td>
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/glass.gif"/>
<b>
Improve UI Responsiveness.
</b>
&nbsp;[medium]
</td>
</tr>
</table>
<table>
<tr>
<td valign="top">
<i>Detail:</i>
</td>
<td>
<detail>
<ul>
<li>Measure and improve speed of wizard page flips.</li>
<li>Measure and improve speed of Web Services Explorer links.</li>
<li>Measure and improve speed of Command execution times.</li>
<li>Measure and improve speed of SWT control responses.</li>
<li>Optimize slow algorithms in wizard pages and Commands.</li>
<li>Investigate use of secondary threads for some Commands.</li>
<li>Report accurate progress messages to the user.</li>
</ul>
</detail>
</td>
</tr>
<tr>
<td valign="top">
<i>Verification:</i>
</td>
<td>
<verification>
<ul>
<li>Use JUnit tests to measure elapsed times for certain actions.</li>
<li>Exercise wizard scenarios to assess qualitative performance.</li>
</ul>
</verification>
</td>
</tr>
</table>
<br/>
<table>
<tr>
<td>
<img height="16" border="0" nosave="" src="../stylesheets/images/Adarrow.gif"/>
</td>
<td>
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/glass.gif"/>
<b>
Identify and resolve memory leaks.
</b>
&nbsp;[medium]
<img width="40" height="12" src="../../../development/milestone_plans/stylesheets/images/help.gif"/>
</td>
</tr>
</table>
<table>
<tr>
<td valign="top">
<i>Detail:</i>
</td>
<td>
<detail>
<ol>
<li>Investigate tools which monitor and measure memory usage.</li>
<li>Identify and fix memory leaks.</li>
</ol>
</detail>
</td>
</tr>
<tr>
<td valign="top">
<i>Verification:</i>
</td>
<td>
<verification>
<ul>
<li>Use JUnit to monitor memory footprint during, before and after each scenario</li>
</ul>
</verification>
</td>
</tr>
</table>
<br/>
<table>
<tr>
<td>
<img height="16" border="0" nosave="" src="../stylesheets/images/Adarrow.gif"/>
</td>
<td>
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/glass.gif"/>
<b>
Identify and remove non-thread safe code.
</b>
&nbsp;[medium]
<img width="40" height="12" src="../../../development/milestone_plans/stylesheets/images/help.gif"/>
</td>
</tr>
</table>
<table/>
<br/>
<table border="0" width="100%" cellpadding="2" cellspacing="5">
<tbody>
<tr>
<td colspan="4" bgcolor="#0080c0" width="100%" align="left" valign="top">
<b>
<font face="Arial,Helvetica">
<font color="#ffffff">Legend</font>
</font>
</b>
</td>
</tr>
<tr>
<td valign="top">
<img width="14" height="5" src="../../../development/milestone_plans/stylesheets/images/progress.gif"/>
</td>
<td width="50%">item is under development.</td>
<td valign="top">
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/glass.gif"/>
</td>
<td width="50%">item is under investigation.</td>
</tr>
<tr>
<td valign="top">
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/ok.gif"/>
</td>
<td width="50%">item is finished.</td>
<td valign="top">
<img width="40" height="12" src="../../../development/milestone_plans/stylesheets/images/help.gif"/>
</td>
<td width="50%">help wanted</td>
</tr>
<tr>
<td valign="top">
<img width="10" height="10" src="../../../development/milestone_plans/stylesheets/images/defer.gif"/>
</td>
<td width="50%">item is deferred.</td>
<td valign="top">
<font class="indexsub">
<img src="../../../development/milestone_plans/stylesheets/images/new.gif"/>
</font>
</td>
<td width="50%">new</td>
</tr>
</tbody>
</table>
<br/>
<br/>
<br/>
<p>
Please see our
<a href="http://eclipse.org/legal/privacy.html">privacy policy</a>
and website
<a href="http://eclipse.org/legal/termsofuse.html">terms of use</a>
. For problems with the eclipse.org site, please contact the
<a href="mailto:webmaster@eclipse.org">webmaster</a>
or read the
<a href="http://eclipse.org/webmaster/index.html">webmaster FAQ</a>
for answers to common questions!
</p>
</body>
</html>