| <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> |
| [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> |
| [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> |
| [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> |
| [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> |
| [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> |
| [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> |
| [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> |
| [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> |
| [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> |
| [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> |
| [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> |
| [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> |
| [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> |
| [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> |
| [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> |