[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 web (was: css performance) > 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, web > > 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-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
[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-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists