Meego Wiki
Views

ARM/N900/Performance

From MeeGo wiki
< ARM | N900
Revision as of 08:56, 15 June 2011 by Vesku (Talk | contribs)
Jump to: navigation, search

Contents

CE Performance page

UX & Performance team

  • Communications
    • IRC-channel #meego-arm at freenode
    • CE daily meetings (time tbd)
    • meego-handset mailing list
  • Contributors
    • Vesa-Matti Hartikainen IRC-nick: veskuh
    • Vijay Nayani IRC-nick: vnayani
    • Timo Rongas IRC-nick: ronksu
    • Miroslav Safr IRC-nick: mirek or mirek2

Problems

  • Startup time of applications
  • Startup time of the device
  • Right after the homescreen has loaded, after the first boot, device is unusable for a while
  • Memory use
  • Slow I/O performance 2-20x slower than Maemo5 on N900
  • UI scrolling freezes for 1-2s from time to time

Task list

UX fixes

Tasks

  • Theming bugs
  • Localization issues (Apps team)
  • SMS does not not notify user (mkainu)
  • Orientation issue with meego-ux-apps (Ronksu)
  • Close button for meego-ux based apps (selesnie)
    • This should be done on generic component itself, not to individual apps
  • Remove systemui looking bar from meego-ux apps (it's confusing since it is not fully functional)

Tasks Done

  • Meta bug for UX and usability issues for Summer Release created:
 Bug 18862 - [META] [DE] UX glitches and bad usability in N900 DE Summer Release

Reducing App Startup time

Tasks

  • Investigate if booster really helps (veskuh)
  • last resort type of thing: taking NAND to use as swap (and destroying maemo installation)
  • Investigate I/O priorities of daemon's

Tasks Done

  • launcher set I/O priority to IDLE for home this slows down startup of apps. Increase it to Normal (stskeeps)
  • eMMC performance investigation, maemo is 2-20x faster? see bug #18295 (Q/A team to rerun the tests)
    • Not that much slower, and in fact many cases faster
  • eMMC vs. MMC, according to Sage, no major difference in old experiments

Reducing memory use

Tasks

  • lower GLES ParamBuffer size (veskuh)
  • Merge meego-volume-control to systemui (jpeltonen)
  • adjust stack sizes
  • zram (formerly known as ramzswap and compcache) trial (tazpa)

Tasks Done

Improving first boot

Tasks

  • tracker to preindex filesystem to improve first boot. see bug #18759 (maitrey)
  • Reduce the number of .desktop files and icons meegohome scans at first boot (vnayani)
  • Reduce I/O priority of tracker-miner and tracker-store (use ionice to to launch)
  • delay start of tracker indexing

Tasks Done

Improving system startup

Tasks

  • Reduce the list of autostarted apps.
  • Delay the startup of dialer trackers to happen once destop is ready (lamikr)
  • tracker configuration (maitrey)

Tasks Done

  • autostarted backlight setup.desktop file removed from the nokia-n900-configs (mce handles backlight) (lamikr)
  • bootchart generated svg from the N900 processes starting up attached to bug https://bugs.meego.com/show_bug.cgi?id=9527 (lamikr)

Improving UI Performance

Tasks

  • Check if newer MTF improves performance (mirek)
  • Check if newer Qt improves performance

Tasks Done

Misc

Tasks

  • optimizing MTF packages, there might be some configuration options, etc.?
  • CGROUPS optimization, most likely still not done
  • cache some often used data in NAND and symlink there
  • test overclock with known testing (from qa-tools guys perhaps)
    • kjokinie: Tested on my set up boot-times with some overclock configurations already
      • practically it does not help at least boot time
      • however, at least audio player seemed much more responsive, so application performances should still be tested by QA.
  • real microsdhc tests based on class speed rating
    • actually answer specific questions about how write/read speed effect perf
      • app startup times
      • general usage
      • media write times
      • cataloguing media
  • Swap on memory card (probably will not help if the os is on the card also, otherwise might)
  • Taking fennec more frequently from upstream beta repository http://lists.meego.com/pipermail/meego-handset/2011-June/000467.html
  • Profile startup of simple MTF, QML, and Qt apps
  • Profile memory use of simple MTF, QML, and Qt apps
  • Investigate configuration options for MTF
  • Investigate configuration options for Qt
  • Investigate configuration options for QML
  • Update MTF (libmeegotouch, mcompositor, home, system ui, etc. ) to get latest optimizations from upstream
  • Update Qt

Tasks Done

  • Carsten tweaked kernel virtual memory settings (increased swappiness), Fennec bootup improved a lot and also system responsivness
  • thumbnails images for pre-installed images should be done during the build time. (Now thumbnails are generated only when user wants to get the image list and that takes times)

Benchmark results

  • Results from Q/A http://wiki.meego.com/ARM/N900/QA/Performance
  • Different class SD card benchmarking
    • SDcard benchmarking 060611.jpg
    • Used image 05-30.1 acceptance image
    • With class 10 card image worked really unstable. Measurements were got after several tries.
    • Current class10 measurements are not comparable but give somekind of direction
  • SunSpider (JavaScript performance
    • 6.1s with GPE MiniBrowser (image DE.2011-05-30 acceptance)
    • 6.8s with Fennec (image DE.2011-05-30 acceptance)
    • These are actually pretty good results. Indicates that raw CPU perfomance is ok.
  • widgetsgallery -timedemo -log-fps
Page name                    StaticPageBenchmark (0)  PanningBenchmark (0)  RotationBenchmark (90)  StaticPageBenchmark (90)  PanningBenchmark (90)  RotationBenchmark (0)  
ApplicationMenu                 48fps | 2988ms                 n/a | n/a             25fps |  557ms          53fps | 2984ms                   n/a | n/a             29fps |  578ms      
DisplayModes                    55fps | 2989ms           54fps |  421ms        40fps |  574ms          53fps | 2983ms                   n/a | n/a             47fps |  546ms      
ToolBar                         51fps | 2972ms           41fps |  503ms        34fps |  602ms          55fps | 2998ms            46fps |  298ms         20fps |  250ms      
CustomNavigationBar             53fps | 2989ms                 n/a | n/a             46fps |  579ms          54fps | 2980ms                   n/a | n/a             52fps |  572ms      
Label                           50fps | 3157ms           45fps |   87ms               n/a | n/a              54fps | 2989ms                   n/a | n/a             40fps |  573ms      
Image                           55fps | 2996ms           55fps |  379ms               n/a | n/a              52fps | 2989ms            54fps |  129ms          7fps |  139ms       
ProgressBar                     49fps | 2981ms                 n/a | n/a             34fps |  644ms          54fps | 2973ms                   n/a | n/a             36fps |  627ms      
Spinner                         52fps | 2989ms                 n/a | n/a                    n/a | n/a              53fps | 2989ms                   n/a | n/a             27fps |  436ms       
PushButton                      48fps | 2982ms           45fps | 3427ms        28fps |  671ms          47fps | 2985ms            44fps | 4521ms                n/a | n/a          
IconButton                      52fps | 2991ms                 n/a | n/a             35fps |  674ms          54fps | 2989ms                   n/a | n/a             38fps |  621ms      
Switch                          54fps | 2989ms                 n/a | n/a             31fps |  694ms          54fps | 2991ms                   n/a | n/a             28fps |  657ms      
Checkbox                        52fps | 2989ms                 n/a | n/a             30fps |  780ms          54fps | 2997ms                   n/a | n/a             38fps |  649ms      
ButtonGroup                     53fps | 3005ms           27fps |  323ms               n/a | n/a              50fps | 2988ms            52fps |  491ms                n/a | n/a          
SingleSelectionDialogsPage      56fps | 2998ms           46fps |  345ms               n/a | n/a              53fps | 3004ms                   n/a | n/a             42fps |  654ms      
QueryDialogsPage                50fps | 2997ms                 n/a | n/a             35fps |  696ms          53fps | 2987ms                   n/a | n/a             36fps |  655ms      
SheetsPage                      54fps | 2988ms           59fps |  151ms               n/a | n/a              55fps | 2982ms                   n/a | n/a             40fps |  666ms      
BannersPage                     51fps | 2996ms                 n/a | n/a             37fps |  740ms          54fps | 3000ms                   n/a | n/a             38fps |  671ms      
NotificationsPage               54fps | 2994ms                 n/a | n/a             35fps |  733ms          55fps | 3000ms                   n/a | n/a             39fps |  678ms      
List                            54fps | 2989ms           53fps |20539ms         2fps |  485ms          56fps | 2973ms            51fps |19630ms                n/a | n/a          
Grid                            16fps | 2961ms           48fps | 2777ms        16fps | 1016ms          42fps | 3147ms            48fps | 3252ms                n/a | n/a          
ObjectMenu                      44fps | 2988ms           52fps |  248ms               n/a | n/a              54fps | 2991ms            55fps |  181ms                n/a | n/a          
ComboBox                        52fps | 2946ms                 n/a | n/a             25fps |  856ms          53fps | 2984ms                   n/a | n/a             30fps |  784ms      
ContentItems                    55fps | 2987ms           39fps | 4197ms               n/a | n/a              54fps | 2988ms            29fps | 3483ms          7fps |  407ms      
SpeechBubble                    52fps | 2986ms           47fps | 3842ms               n/a | n/a              51fps | 2989ms            29fps | 3906ms                n/a | n/a          
TextEntry                       54fps | 2988ms           43fps | 3209ms               n/a | n/a              52fps | 2988ms            35fps | 2541ms                n/a | n/a          
TextEntryNavigation             53fps | 2989ms                 n/a | n/a             18fps |  912ms          50fps | 2982ms                   n/a | n/a             22fps |  794ms      
TextEntryAttributeExtension     54fps | 2988ms           41fps |  192ms               n/a | n/a              53fps | 2988ms                   n/a | n/a             19fps |  860ms      
Slider                          54fps | 2997ms           37fps |  404ms               n/a | n/a              53fps | 2989ms                   n/a | n/a             18fps |  865ms      
InputFeedback                   52fps | 2988ms           55fps |   90ms        19fps |  902ms          40fps | 2988ms            43fps |   69ms                n/a | n/a          
Information Display             53fps | 3001ms           26fps |  188ms        24fps |  930ms          54fps | 2999ms                   n/a | n/a             28fps |  857ms      
Take a screenshot               49fps | 3217ms                 n/a | n/a             23fps | 1028ms          55fps | 2978ms                   n/a | n/a             26fps |  893ms
    • Conclusion: Graphis performance seems to be ok
  • processes eating more than 2000kb of memory (2010-06-08)
    • (ps -e -orss=,args= | sort -b -k1,1n | pr -TW100)
 2016 /usr/sbin/ofonod
 2228 /usr/sbin/connmand -W nl80211,wext
 2400 uxlaunch
 2616 /sbin/mce -d
 2624 /usr/libexec/upowerd
 2952 /usr/sbin/dsme -p /usr/lib/dsme/libstartup.so
 3084 /usr/libexec/mission-control-5
 3440 /usr/bin/meego-volume-control
 3616 /usr/sbin/sensord -c=/etc/sensorfw/sensord-rx_51.conf -d --log-target=4 --log-file-path=/var/l
 3900 /usr/bin/timed
 3984 /usr/lib/tumbler-1/tumblerd
 4084 /usr/bin/pulseaudio --start -n --file=/etc/pulse/arm_nokia_rx_51_board.pa
 4564 /usr/sbin/ohmd
 7172 /usr/libexec/tracker-miner-fs
 7460 /usr/bin/applifed
12384 /usr/bin/applauncherd.bin                                                   
14160 /usr/libexec/tracker-store
14524 /usr/bin/messageserver
16568 /usr/bin/Xorg :0 -dpi 120 -nolisten tcp -noreset -auth /home/meego/.Xauthority -nocursor vt2
20108 /usr/bin/mthemedaemon
21676 /usr/bin/mcompositor
26820 /usr/bin/meego-im-uiserver -remote-theme
27344 booster-m
27852 /usr/bin/mdecorator -software -remote-theme
32620 /usr/bin/sysuid -remote-theme
33172 /usr/bin/meegotouchhome -remote-theme
38544 /usr/bin/dialer -prestart

  • Conclusion: meego-volume-control went down from 26000 kb to 3440 thanks for the qml ripout
  • Can we reduce the mem usage of processes like sysuid, mdecorator, mthemedaemon
  • Is booster-m really improving our performance as it takes itself a lot of from our memory that we do not have any extra without swapping?
    • by removing the applauncherd (process starting booster-m) and tracker-store and delaying the dialer ui (40000 kb) launch by 30 second, bootup time will improved from 72 second to 59.

Tools & Links

Ideas

Use settings from M5 rc scripts, such as reducing ptys, etc to save memory

Team meeting minutes

http://irclogs.meego.com/meetbot/meego-meeting/2011/meego-meeting.2011-06-10-06.58.html

Personal tools