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)
Tasks Done
- 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
-
- 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