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