flex-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benoit Wiart (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (FLEX-33897) MediaQueryParser should not allocate memory for expressions already cached
Date Tue, 12 Nov 2013 11:01:19 GMT

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

Benoit Wiart updated FLEX-33897:
--------------------------------

    Description: 
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.

  was:
When using @media from default sdk styles or custom styles
the mxml compiler generates code like :
{code:ActionScript}
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;
              }
...
{code}

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.


> 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
>            Priority: Minor
>              Labels: memory, performance
>
> 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#6144)

Mime
View raw message