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

Justin Mclean reassigned FLEX-33897:
------------------------------------

    Assignee: Justin Mclean

> MediaQueryParser should not allocate memory for expressions already cached
> --------------------------------------------------------------------------
>
>                 Key: FLEX-33897
>                 URL: https://issues.apache.org/jira/browse/FLEX-33897
>             Project: Apache Flex
>          Issue Type: Improvement
>          Components: Mobile: Performance, Styles
>    Affects Versions: Apache Flex 4.11.0
>         Environment: desktop mobile
>            Reporter: Benoit Wiart
>            Assignee: Justin Mclean
>            Priority: Minor
>              Labels: memory, performance
>         Attachments: 0001-MediaQury-parser-optimization.patch, 
> mediaquery-example-1.png
>
>
> When using @media from default sdk styles or custom styles
> the mxml compiler generates code like :
> if (styleManager.acceptMediaList("(application-dpi:160)"))
> {
>     this.focusThickness = 3;
>     this.fontSize = 24;
> }
> if (styleManager.acceptMediaList("(application-dpi:320)"))
> {
>     this.fontSize = 24;
> }
> if (styleManager.acceptMediaList("(application-dpi:480)"))
> {
>     this.focusThickness = 3;
>     this.fontSize = 24;
> }
> ...
> The acceptMediaList is often called, it delegates to MediaQueryParser which 
> has a cache of known media expressions.
> But MediaQueryParser#parse allocates some memory even if the expression is in 
> the cache. these allocations come from the string manipulation.
> this patch use the original expression as the key in the cache instead of the 
> 'lowercased' expression.
> It will increase the cache size (by a small percentage) only if you have the 
> same media expression in different case.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to