You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flex.apache.org by "DarkStone (JIRA)" <ji...@apache.org> on 2015/04/20 04:36:59 UTC

[jira] [Comment Edited] (FLEX-34821) Improvement of the scroller perfomances on mobile devices

    [ https://issues.apache.org/jira/browse/FLEX-34821?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14502249#comment-14502249 ] 

DarkStone edited comment on FLEX-34821 at 4/20/15 2:36 AM:
-----------------------------------------------------------

Testing Android phone hardware specification:
Model: M1 Note
5.5 inch screen, 1920x1080, 401 ppi
2GB RAM, 16GB ROM
ARM® Cortex®-A53 1.7GHz x 8
Mali T760 MP2/700MHz GPU

Full specification go here:
http://www.meizu.com/en/products/m1note/spec.html

Now here is the Scout data of your apk:

Swiping the list like madly with cacheViewport set to false:
Average framerate: 59.3 fps
Average CPU usage: 73%
Peak CPU usage: 100%
Total Memory usage: 28 MB

Swiping the list like madly with cacheViewport set to true:
Average framerate: 58.9 fps
Average CPU usage: 33%
Peak CPU usage: 105%
Total Memory usage: 82 MB


was (Author: darkstone):
Testing Android phone hardware specification:
Model: M1 Note
5.5 inch screen, 1920x1080, 401 ppi
2GB RAM, 16GB ROM
ARM® Cortex®-A53 1.7GHz x 8
Mali T760 MP2/700MHz GPU

Full specification go here:
http://www.meizu.com/en/products/m1note/spec.html

Now here is the Scout data of your apk:

Swiping the list like madly with cacheViewport set to false:
Average framerate: 59.4 fps
Average CPU usage: 73%
Peak CPU usage: 100%
Total Memory usage: 28 MB

Swiping the list like madly with cacheViewport set to true:
Average framerate: 58.9 fps
Average CPU usage: 33%
Peak CPU usage: 105%
Total Memory usage: 82 MB

> Improvement of the scroller perfomances on mobile devices
> ---------------------------------------------------------
>
>                 Key: FLEX-34821
>                 URL: https://issues.apache.org/jira/browse/FLEX-34821
>             Project: Apache Flex
>          Issue Type: Improvement
>            Reporter: After24
>         Attachments: 01 Swiping the list like madly with cacheViewport set to false.png, 02 Swiping the list like madly with cacheViewport set to true.png, ViewportCache.zip, ViewportCacheDemo.apk, ViewportCacheDemo.flm
>
>
> This is an experimentation on the flex Scroller component to improve the framerate of the scrolling operations.
> This optimization based on the blitting technique.
> A new boolean property named cacheViewport is added to the Scroller component. When cacheViewPort is set to true, all scrolling operations are performed according to the following cycle :
>  
> 1 - A bitmap copy of the viewport is made just before the next scrolling operation (large viewports are cached in multiple tiles if necessary)
> 2 - When the user starts a scrolling operation, the actual viewport is replaced by its bitmap version and the scrolling is executed by drawing the viewport according to its verticalScrollPosition and horizontalScrollPosition properties.
> 3 - At the end of the scroll operation, the bitmap viewport is replaced by its actual version.
> 4 - Between each scrolling operations, when the user interacts with the viewport content, a process mark as 'dirty' every regions of the viewport that are likely to have changed during those interactions. Every dirty region is redrawn before the next scrolling operation.
> Pros :
> - 60 FPS scrolling, even on old devices.
> - Performance is no longer dependant on the viewport complexity.
> - Can be used with the list component if it contains a moderate number of rows (useVirtualLayout must be set to false though)
> Cons :
> - There is a slight lag (dependant on the device processor) during the viewport rasterization and the process of redrawing every dirty regions.
> - Doesn't support virtualized layouts.
> - Animated elements of the viewport freezes during scrolling operations.
> - Render mode must be set to <renderMode>gpu</renderMode> on the current version.
> - Depending on its dimensions, the viewport rasterization process can consume large amounts of memory.
> A demo application can be downloaded on the android play market here : https://play.google.com/store/apps/details?id=air.fr.after24.ViewportCacheDemo
> Source code is attached.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)