DE Performance page
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
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
Improvement ideas
- optimizing MTF packages, there might be some configuration options, etc.?
- ramzswap trial
- CGROUPS optimization, most likely still not done
- eMMC performance investigation, maemo is 2-20x faster? see bug #18295
- last resort type of thing: taking NAND to use as swap (and destroying maemo installation)
- adjust stack sizes
- lower GLES ParamBuffer size
- Remove unused applifed processes.
- Merge meego-volume-control to systemui
- cache some often used data in NAND and symlink there
- tracker configuration
- tracker to preindex filesystem to improve first boot. see bug #18759
- test overclock with known testing (from qa-tools guys perhaps)
- 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)
- Reduce the list of autostarted apps.
TODO list
- 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
Issues being worked on
Tools