Android客户端性能工具:gfxinfo输出总结

 adb shell dumpsys gfxinfo <packageName>

dumpsys gfxinfo <packageName> reset
dumpsys gfxinfo <packageName>

Applications Graphics Acceleration Info:
Uptime: 22215460 Realtime: 38892707

** Graphics info for pid 4731 [net.oneplus.launcher] **

Stats since: 54444436332ns      // 开始记录的时间        
Total frames rendered: 11835    // 总帧数 
Janky frames: 280 (2.37%)       // janky的帧数以及百分比,有280帧的耗时超过16ms,掉帧率为2.37%
50th percentile: 12ms           // 50%的帧耗时在12ms以内
90th percentile: 21ms           // 90%的帧耗时在21ms以内
95th percentile: 27ms           // 95%的帧耗时在27ms以内
99th percentile: 61ms           // 99%的帧耗时在61ms以内
Number Missed Vsync: 296        // 处理vsync延迟1ms以上的帧数量,垂直同步失败的帧       
Number High input latency: 32   // 处理input耗时超过1.5*frameInterval的帧数量,处理input时间超时的帧数 
Number Slow UI thread: 1092     // main thread处理ui耗时超过0.5*frameInterval的帧数量,因UI线程上的工作导致超时的帧数 
Number Slow bitmap uploads: 159 // render thread同步数据耗时超过0.2*frameInterval的帧的数量,因bitmap的加载耗时的帧数
Number Slow issue draw commands: 1251 // 绘制和上传到sf耗时超过0.75*frameInterval的帧的数量,因绘制导致耗时的帧数
HISTOGRAM: 5ms=1254 6ms=581 7ms=663 8ms=697 9ms=720 10ms=930 11ms=917 12ms=981 13ms=753 14ms=646 15ms=530 16ms=597 17ms=419 18ms=332 19ms=298 20ms=320 21ms=179 22ms=140 23ms=91 24ms=73 25ms=69 26ms=33 27ms=35 28ms=29 29ms=31 30ms=30 31ms=24 32ms=53 34ms=29 36ms=42 38ms=33 40ms=35 42ms=34 44ms=22 46ms=16 48ms=27 53ms=26 57ms=21 61ms=16 65ms=19 69ms=13 73ms=11 77ms=12 81ms=12 85ms=2 89ms=2 93ms=5 97ms=2 101ms=2 105ms=1 109ms=2 113ms=0 117ms=4 121ms=1 125ms=0 129ms=0 133ms=1 150ms=9 200ms=1 250ms=3 300ms=3 350ms=0 400ms=1 450ms=0 500ms=0 550ms=0 600ms=1 650ms=1 700ms=0 750ms=0 800ms=1 850ms=0 900ms=0 950ms=0 1000ms=0 1050ms=0 1100ms=0 1150ms=0 1200ms=0 1250ms=0 1300ms=0 1350ms=0 1400ms=0 1450ms=0 1500ms=0 1550ms=0 1600ms=0 1650ms=0 1700ms=0 1750ms=0 1800ms=0 1850ms=0 1900ms=0 1950ms=0 2000ms=0 2050ms=0 2100ms=0 2150ms=0 2200ms=0 2250ms=0 2300ms=0 2350ms=0 2400ms=0 2450ms=0 2500ms=0 2550ms=0 2600ms=0 2650ms=0 2700ms=0 2750ms=0 2800ms=0 2850ms=0 2900ms=0 2950ms=0 3000ms=0 3050ms=0 3100ms=0 3150ms=0 3200ms=0 3250ms=0 3300ms=0 3350ms=0 3400ms=0 3450ms=0 3500ms=0 3550ms=0 3600ms=0 3650ms=0 3700ms=0 3750ms=0 3800ms=0 3850ms=0 3900ms=0 3950ms=0 4000ms=0 4050ms=0 4100ms=0 4150ms=0 4200ms=0 4250ms=0 4300ms=0 4350ms=0 4400ms=0 4450ms=0 4500ms=0 4550ms=0 4600ms=0 4650ms=0 4700ms=0 4750ms=0 4800ms=0 4850ms=0 4900ms=0 4950ms=0
// 这段输出一段直方图数据,输出用时秒数的帧数,表面耗时为0-5ms的帧数为1254,耗时为5-6ms的帧数为581,同理类推。
// 后面部分输出内存相关的信息
Caches:
Current memory usage / total memory usage (bytes):
  TextureCache          3108068 / 100663296            // 纹理缓存已使用大小/最大可用大小
  LayerCache                  0 / 67108864 (numLayers = 0)// layer缓存使用大小/最大可用大小(texture)
  Layers total          0 (numLayers = 0)              // layer数量
  RenderBufferCache           0 / 12582912
  GradientCache               0 /  1048576
  PathCache                   0 / 40894464
  TessellationCache           0 /  1048576
  TextDropShadowCache    108736 /  7340032
  PatchCache                128 /   131072
  FontRenderer A8         60887 /  4194304
    A8   texture 0        60887 /  4194304
  FontRenderer RGBA           0 /        0
  FontRenderer total      60887 /  4194304
Other:
  FboCache                    0 /        0
Total memory usage:
  7411236 bytes, 7.07 MB
// 这段打印都是缓存的信息,使用缓存的总大小

Pipeline=FrameBuilder
Profile data in ms:
    net.oneplus.launcher/net.oneplus.launcher.Launcher/android.view.ViewRootImpl@a827964 (visibility=0)
    Draw    Prepare Process Execute
    5.41    0.26    3.94    0.77
    2.54    0.23    9.28    1.34
    8.46    7.72    23.74   1.36
    1.81    0.20    1.17    2.42
    9.37    0.23    6.01    0.66
    1.30    0.19    16.54   0.59
    1.20    0.22    15.05   0.47
    1.15    0.27    16.66   0.90
    1.87    0.44    11.98   2.56
    3.19    0.42    3.83    1.29
    1.57    0.36    2.11    0.88
    1.49    0.31    2.06    0.85
    1.41    0.30    2.23    0.91
    2.00    0.32    2.00    0.92
    3.45    0.39    2.97    1.19
   draw行代表绘制信息 
   prepare 同步时间 
   Process gl绘制时间 
   Execute swapbuffer时间
// 这段打印FrameInfoVisualizer的统计信息 
  
---PROFILEDATA---
Flags,IntendedVsync,Vsync,OldestInputEvent,NewestInputEvent,HandleInputStart,AnimationStart,PerformTraversalsStart,DrawStart,SyncQueued,SyncStart,IssueDrawCommandsStart,SwapBuffers,FrameCompleted,DequeueBufferDuration,QueueBufferDuration,
0,21256019939003,21256019939003,9223372036854775807,0,21256021611264,21256021663399,21256021840691,21256023720795,21256025349180,21256025417982,21256025679753,21256029621160,21256030392410,491000,416000,
0,21256036634257,21256036634257,9223372036854775807,0,21256037009024,21256037028503,21256037252253,21256038165482,21256039177670,21256039226160,21256039455118,21256048731055,21256050073347,432000,376000
---PROFILEDATA---
// 这段打印了每一帧的统计信息(最多120帧)

View hierarchy:
  net.oneplus.launcher/net.oneplus.launcher.Launcher/android.view.ViewRootImpl@a827964
  368 views, 466.32 kB of display lists    //view的数量大小,通过allocer统计 

Total ViewRootImpl: 1                        // viewroot总数量 
Total Views:        368                      // view总数量 
Total DisplayList:  466.32 kB                // 总大小
// 这段会打印每个viewroot的信息

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android系统性能优化对于解决卡顿、提升稳定性和优化续航方面起着重要的作用。 首先,在解决卡顿问题上,开发人员需要关注应用程序的UI线程。为了确保应用程序的流畅运行,可以采用以下优化措施:优化布局文件,减少层级嵌套;使用异步加载图片,避免在主线程中进行网络请求等耗时操作;合理利用缓存机制,避免重复加载数据。此外,还可以针对卡顿问题进行性能分析,通过工具查找耗时操作,并进行相应的优化。 其次,在提高系统稳定性方面,开发人员需要考虑异常崩溃的处理和内存管理。异常崩溃处理可通过捕获并记录崩溃异常来及时解决问题和改进代码。内存管理方面,应避免内存泄漏和过度分配内存,使用系统提供的工具来进行内存管理和优化。 最后,在续航优化上,需要考虑电源管理和资源使用的合理分配。通过使用省电模式、灵活控制后台任务和限制应用程序在后台运行等方式,最大程度地延长设备的电池寿命。另外,合理管理资源,避免过度使用CPU、网络和图形渲染等资源,有助于降低能耗并优化系统续航。 总之,Android系统性能优化是一个综合性的工作,需要开发人员关注卡顿问题、提升稳定性和优化续航方面的问题。通过合理使用工具和采取相应的优化措施,可以实现系统性能的有效提升。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值