You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by "Pete Whelpton (JIRA)" <ji...@apache.org> on 2019/05/10 15:01:00 UTC

[jira] [Updated] (NETBEANS-2530) Optimize GrammarParser.java in CSS Lib module

     [ https://issues.apache.org/jira/browse/NETBEANS-2530?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pete Whelpton updated NETBEANS-2530:
------------------------------------
    Labels: css performance  (was: )

> Optimize GrammarParser.java in CSS Lib module
> ---------------------------------------------
>
>                 Key: NETBEANS-2530
>                 URL: https://issues.apache.org/jira/browse/NETBEANS-2530
>             Project: NetBeans
>          Issue Type: Improvement
>          Components: web - CSS Editor
>    Affects Versions: 11.0
>            Reporter: Pete Whelpton
>            Priority: Major
>              Labels: css, performance
>
> Trying to bring the CSS module grammar (the .properties files in the CSS Editor module) up to date causes severe performance issues in NB due to the recursive nature of the parseElements() method of the GrammarParser class.
>  
> 1) Recursive grammar (such as that of the calc() function in css) will cause a stack overflow as parseElements() will keep calling itself to resolve references until the stack is blown
> 2) Not using recursive grammar will still cause major performance issues will more than 1/2 levels of references, as memory gets eaten due to the parseElements() method not having a cache (e.g. it will call itself to try and resolve a reference it has already resolved previously, doing a lot of unnecessary work).  In its current implementation it can blow the Java heap.
>  
> I have grammar pretty much ready to go to implement CSS Values and Modules function in NB (e.g. proper implementation of calc(), min(), max(), attr() etc.), and have got 2) to be less of an issue by using a HashMap to cached reference properties so they don't get resolved again.  Performance is still "stutery" at best - at NB memory still gets used up, but then reclaimed by the GC.  Could really use some help properly optimizing this class.
>  
> I think this should be fairly straightforward for somebody who knows what they are doing!  I'd love to help bring CSS support up to date!



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists