Source code file content

Revision: 2

import
» Project Revision History

» Checkout URL

web-content / trunk / dev / reviews / opinions_91559.html

Size: 5565 bytes, 1 line
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
    <title>Code Completion Responsiveness</title>
    <META NAME="AUTHOR" CONTENT="Vladimir Voskresensky">
</head>
<body LANG="en-US" >
    
<h1>Architecture Review Opinion</h1>

<dl>
<dt><b>Issue:</b> <a href="http://www.netbeans.org/issues/show_bug.cgi?id=915559">91559</a></dt>
<dt><b>Submitter:</b> <a href="mailto:vv159170@netbeans.org">Vladimir Voskresensky</a></dt>
<dt><b>History:</b><a href="http://www.netbeans.org/source/browse/cnd/www/dev/reviews/opinions_91559.html">in CVS</a>

<dt><b>Date:</b> Dec 26, 2006</dt>
<dt><b>Reviewers:</b> </dt>
</dl>
<hr/>
<dl>
<dt><b>Contents</b></dt>
<dd>
<ul>
<li><a href="#summary">Summary</a></li>

<li><a href="#decision">Decision</a></li>
<li><a href="#opinion">Opinion</a></li>
<li><a href="#minority">Minority Opinion</a></li>
<li><a href="#advisory">Advisory Information</a></li>
<li><a href="#appendices">Appendices</a>
<ul>
  <li><a href="#TCRs">Appendix A: TCRs</a></li>
  <li><a href="#TCAs">Appendix B: TCAs</a></li>

  <li><a href="#references">Appendix C: Reference Material</a></li>
</ul>
</li>
</ul>
</dd>
</dl>

<hr/>

<h2><a name="summary">Summary</a></h2>

<p>
    Responsiveness tests for Code completion show the following results:
    <ul>
        <li>
            2-6s (Intel/AMD)
        </li>
        <li>
            3-12s (Sparc)
        </li>
    </ul>
</p>
<p>
    <b>The goal is to improve code completion response performance to 2 seconds or less.</b>
</p>

<h2><a name="decision">Decision</a></h2>

<p>

</p>
<!--
<p>[Keep this short; details will be given in <a href="#opinion">Opinion</a>
section. Mark one of three outcomes:</p>
<ul>
<li><b>Accepted</b> (Go to implement or commit, based on phase of review)</li>
<li><b>Accepted with change requests</b> (Go to implement or commit with completed Technical Change
requests)</li>
<li><b>Rejected</b> (No, go back and do it again.)</li>
</ul>
<p>]</p>
-->

<h2><a name="opinion">Opinion</a></h2>

<h2>Overview of problem</h2>
<p>
    The following picture shows respone time distribution between layers:
</p>
<img src="91559/cc-summary.png" alt="cc-summary"/>

<h2>Issue details</h2>
    <h3>Collect data</h3>
        <h4>Base Level</h4>
            <p>
                Now recalculated each invocation:
                <ul>
                    <li>
                        Local scope elements
                    </li>            
                    <li>
                        Project elements
                    </li>
                    <li>
                        Used Libraries elements
                    </li>
                </ul>
            </p>    
        <h4>Tasks</h4>
            <p>
                <b>Action item:</b> Change used code completion SPI(from 4.0 to recent SPI) 
                to support different code completion providers and modern drawing infrastructure
            </p>
            <p>
                <b>Action item:</b> Separate code completion providers by scope:
                <ul>
                    <li>
                        Local scope elements
                    </li>            
                    <li>
                        Project elements
                    </li>
                    <li>
                        Used Libraries elements
                    </li>
                </ul>
                <b>Action item:</b> Separate code completion providers by element types:
                <ul>
                    <li>
                        macros
                    </li>            
                    <li>
                        variables declarations
                    </li>
                    <li>
                        classes/structures/enums
                    </li>
                </ul>
            </p>
            <p>
                <b>Action item:</b> Analyze and remove unnecessary calls to expensive name resolver
            </p>
            <p>
                <b>Action item:</b> Cache and reuse unchanging data like Libraries elements
            </p>

    <h3>Calculate display size of data &amp; Display data</h3>
        <h4>Base Level</h4>
            <p>
                Now recalculated each time and dummy drawing for each element is done 
                to return prefered size.
            </p>  
        <h4>Tasks</h4>
            <p>
                <b>Action Item:</b> providers of unchanged data should do work only once.
            </p>
            <p>
                <b>Action Item:</b> use new SPI approach by returning number of elements and 
                prefered size. Do not spend time in calculating for each element.
            </p>   
<h3>Code Snippets</h3>
<p>
</p>

<h2><a name="minority">Minority Opinion</a></h2>
 
<p>
</p>
<pre>
</pre>

<p>

</p>

<h2><a name="advisory">Advisory Information</a></h2>

<p>[List any non-blocking issues and suggestions for improvement.]</p>
    
<h2><a name="appendices">Appendices</a></h2>

<h3><a name="TCRs">Appendix A: Technical Changes Required</a></h3>

<p>[File all TCRs in Issuezilla with P1 or P2 priority and make the issue representing this 
review depend on them.]</p>

<h3><a name="TCAs">Appendix B: Technical Changes Advised</a></h3>

<p>[File all TCAs in Issuezilla with P3 to P5 priority and make the issue representing this 
review depend on them.]</p>

<h3><a name="references">Appendix C: Reference Material</a></h3>

<p>[List additional materials relevant to reviewed case]</p>

</body>
</html>

Project Features

About this Project

CND was started in November 2009, is owned by DimaZh, and has 197 members.
By use of this website, you agree to the NetBeans Policies and Terms of Use (revision 20160708.bf2ac18). © 2014, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo
 
 
Close
loading
Please Confirm
Close