The corresponding bug report is filed here: https://code.google.com/p/android/issues/detail?id=26446
Michael On Monday, March 5, 2012 3:22:24 PM UTC+1, Michael wrote: > > These are results of 'top' running the (unmodified) CameraPreview of the > ApiDemos sample on two Nexus S devices, one with Gingerbread, the other one > with Ice Cream Sandwich: > > 1) Nexus S, Gingerbread, Build Target: Android 2.3.3 > User 1%, System 6%, IOW 0%, IRQ 0% > User 6 + Nice 0 + Sys 21 + Idle 282 + IOW 0 + IRQ 0 + SIRQ 0 = 309 > > PID TID CPU% S VSS RSS PCY UID Thread Proc > 1138 1138 3% R 1092K 528K fg shell top top > 75 1142 1% D 32312K 4500K fg media CameraPreviewTh > /system/bin/mediaserver > 114 125 0% D 192872K 62016K fg system system_server > system_server > 182 182 0% S 103024K 27104K fg system ndroid.systemui > com.android.systemui > 114 126 0% S 192872K 62016K fg system SensorService > system_server > > 2) Nexus S, ICS, Build Target: Android 2.3.3 > User 28%, System 21%, IOW 0%, IRQ 0% > User 90 + Nice 0 + Sys 69 + Idle 157 + IOW 0 + IRQ 0 + SIRQ 1 = 317 > > PID TID PR CPU% S VSS RSS PCY UID Thread Proc > 81 2509 0 17% S 49372K 5100K fg media CameraPreviewTh > /system/bin/mediaserver > 78 131 0 15% S 39576K 17648K fg system SurfaceFlinger > /system/bin/surfaceflinger > 162 175 0 4% D 356748K 46212K fg system system_server > system_server > 2478 2478 0 3% R 1188K 588K fg shell top top > 162 177 0 1% S 356748K 46212K fg system er.ServerThread > system_server > > 3) Nexus S, ICS, Build Target: Android 4.0.3 > User 44%, System 15%, IOW 0%, IRQ 0% > User 140 + Nice 0 + Sys 50 + Idle 128 + IOW 0 + IRQ 0 + SIRQ 0 = 318 > > PID TID PR CPU% S VSS RSS PCY UID Thread Proc > 81 2931 0 38% S 55904K 8412K fg media CameraPreviewTh > /system/bin/mediaserver > 78 131 0 7% S 45432K 22484K fg system SurfaceFlinger > /system/bin/surfaceflinger > 2921 2921 0 3% R 1188K 588K fg shell top top > 162 175 0 2% D 356860K 47052K fg system system_server > system_server > 2718 2718 0 1% S 0K 0K fg root kworker/0:1 > > Indeed, one does not even need to perform any additional (native) > processing to find that the mediaserver and surfaceflinger processes are > consuming an unhealthy amount of CPU power on Ice Cream Sandwich. Note that > the exact behavior even changes with different build targets; ~30% of CPU > time are already bad when building against Android 2.3.3, but it gets a lot > worse with ~45% when building against Android 4.0.3. Am planning to file a > bug report. > > > On Thursday, March 1, 2012 6:53:08 PM UTC+1, Chris Stratton wrote: >> >> >> On Thursday, March 1, 2012 12:08:31 PM UTC-5, Michael wrote: >>> >>> Good tip! This is a print from top running the test application on a >>> Nexus S with Gingerbread: >>> >>> User 89%, System 3%, IOW 0%, IRQ 0% >>> User 282 + Nice 0 + Sys 12 + Idle 22 + IOW 0 + IRQ 0 + SIRQ 0 = 316 >>> PID TID CPU% S VSS RSS PCY UID Thread Proc >>> 771 771 86% R 104220K 27216K fg app_54 PerformanceTest >>> com.ICSPerformanceTest >>> >> >> >>> And this is the exact same application on a Nexus S with Ice Cream >>> Sandwich: >>> >>> User 87%, System 9%, IOW 0%, IRQ 0% >>> User 287 + Nice 0 + Sys 32 + Idle 9 + IOW 0 + IRQ 0 + SIRQ 0 = 328 >>> PID TID PR CPU% S VSS RSS PCY UID Thread Proc >>> 2849 2849 0 57% R 278568K 35372K fg app_66 PerformanceTest >>> com.ICSPerformanceTest >>> 81 2867 0 28% S 56408K 9196K fg media CameraPreviewTh >>> /system/bin/mediaserver >>> >> >> >>> We still don't know why this is happening, though. It's not an active >>> face detection - we double-checked that. A quick look through the Android >>> source code didn't give any insight either. Though my suspicion is that >>> either something is wrong with the ICS implementation or the camera driver. >>> It would be nice to get more info on that, and potential solutions to fix >>> the issue. >>> >> >> You could try and see if you can get git to give up a diff of the >> relevant files in mediaserver between the two versions of Android, but that >> may be a lengthy path to follow. >> >> It would be interesting if you could reproduce the same difference in >> mediaserver CPU usage with someone else's code that doesn't do any (even >> dummy) native processing. Could you try the CamerPreview in the ApiDemos >> of the sdk samples? If you can reproduce the mediaserver CPU load >> reflected by top with that you'd clearly be in a position to file a bug >> report. >> > On Monday, March 5, 2012 3:22:24 PM UTC+1, Michael wrote: > > These are results of 'top' running the (unmodified) CameraPreview of the > ApiDemos sample on two Nexus S devices, one with Gingerbread, the other one > with Ice Cream Sandwich: > > 1) Nexus S, Gingerbread, Build Target: Android 2.3.3 > User 1%, System 6%, IOW 0%, IRQ 0% > User 6 + Nice 0 + Sys 21 + Idle 282 + IOW 0 + IRQ 0 + SIRQ 0 = 309 > > PID TID CPU% S VSS RSS PCY UID Thread Proc > 1138 1138 3% R 1092K 528K fg shell top top > 75 1142 1% D 32312K 4500K fg media CameraPreviewTh > /system/bin/mediaserver > 114 125 0% D 192872K 62016K fg system system_server > system_server > 182 182 0% S 103024K 27104K fg system ndroid.systemui > com.android.systemui > 114 126 0% S 192872K 62016K fg system SensorService > system_server > > 2) Nexus S, ICS, Build Target: Android 2.3.3 > User 28%, System 21%, IOW 0%, IRQ 0% > User 90 + Nice 0 + Sys 69 + Idle 157 + IOW 0 + IRQ 0 + SIRQ 1 = 317 > > PID TID PR CPU% S VSS RSS PCY UID Thread Proc > 81 2509 0 17% S 49372K 5100K fg media CameraPreviewTh > /system/bin/mediaserver > 78 131 0 15% S 39576K 17648K fg system SurfaceFlinger > /system/bin/surfaceflinger > 162 175 0 4% D 356748K 46212K fg system system_server > system_server > 2478 2478 0 3% R 1188K 588K fg shell top top > 162 177 0 1% S 356748K 46212K fg system er.ServerThread > system_server > > 3) Nexus S, ICS, Build Target: Android 4.0.3 > User 44%, System 15%, IOW 0%, IRQ 0% > User 140 + Nice 0 + Sys 50 + Idle 128 + IOW 0 + IRQ 0 + SIRQ 0 = 318 > > PID TID PR CPU% S VSS RSS PCY UID Thread Proc > 81 2931 0 38% S 55904K 8412K fg media CameraPreviewTh > /system/bin/mediaserver > 78 131 0 7% S 45432K 22484K fg system SurfaceFlinger > /system/bin/surfaceflinger > 2921 2921 0 3% R 1188K 588K fg shell top top > 162 175 0 2% D 356860K 47052K fg system system_server > system_server > 2718 2718 0 1% S 0K 0K fg root kworker/0:1 > > Indeed, one does not even need to perform any additional (native) > processing to find that the mediaserver and surfaceflinger processes are > consuming an unhealthy amount of CPU power on Ice Cream Sandwich. Note that > the exact behavior even changes with different build targets; ~30% of CPU > time are already bad when building against Android 2.3.3, but it gets a lot > worse with ~45% when building against Android 4.0.3. Am planning to file a > bug report. > > > On Thursday, March 1, 2012 6:53:08 PM UTC+1, Chris Stratton wrote: >> >> >> On Thursday, March 1, 2012 12:08:31 PM UTC-5, Michael wrote: >>> >>> Good tip! This is a print from top running the test application on a >>> Nexus S with Gingerbread: >>> >>> User 89%, System 3%, IOW 0%, IRQ 0% >>> User 282 + Nice 0 + Sys 12 + Idle 22 + IOW 0 + IRQ 0 + SIRQ 0 = 316 >>> PID TID CPU% S VSS RSS PCY UID Thread Proc >>> 771 771 86% R 104220K 27216K fg app_54 PerformanceTest >>> com.ICSPerformanceTest >>> >> >> >>> And this is the exact same application on a Nexus S with Ice Cream >>> Sandwich: >>> >>> User 87%, System 9%, IOW 0%, IRQ 0% >>> User 287 + Nice 0 + Sys 32 + Idle 9 + IOW 0 + IRQ 0 + SIRQ 0 = 328 >>> PID TID PR CPU% S VSS RSS PCY UID Thread Proc >>> 2849 2849 0 57% R 278568K 35372K fg app_66 PerformanceTest >>> com.ICSPerformanceTest >>> 81 2867 0 28% S 56408K 9196K fg media CameraPreviewTh >>> /system/bin/mediaserver >>> >> >> >>> We still don't know why this is happening, though. It's not an active >>> face detection - we double-checked that. A quick look through the Android >>> source code didn't give any insight either. Though my suspicion is that >>> either something is wrong with the ICS implementation or the camera driver. >>> It would be nice to get more info on that, and potential solutions to fix >>> the issue. >>> >> >> You could try and see if you can get git to give up a diff of the >> relevant files in mediaserver between the two versions of Android, but that >> may be a lengthy path to follow. >> >> It would be interesting if you could reproduce the same difference in >> mediaserver CPU usage with someone else's code that doesn't do any (even >> dummy) native processing. Could you try the CamerPreview in the ApiDemos >> of the sdk samples? If you can reproduce the mediaserver CPU load >> reflected by top with that you'd clearly be in a position to file a bug >> report. >> > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en