zoukankan      html  css  js  c++  java
  • 客户端性能(转载)

    iOS平台(苹果官方Xcode工具参数对齐。注:iOS系统对进程性能参数做严格限制,超过限制则会被系统kill)

        l   ScreenShot(只支持USB模式)

        l   FPS(1秒内游戏画面或者应用界面真实平均刷新次数,俗称帧率/FPS)

        1) Avg(FPS):平均帧率(一段时间内平均FPS)

        2) Var(FPS):帧率方差(一段时间内FPS方差)

        3) Drop(FPS):降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数)

        lJank(1s内卡顿次数。iOS9.1以下系统暂时不支持。类似Android的Jank卡顿和iOS的FramePacing平滑度统计原理。帧率FPS高并不能反映流畅或不卡顿。比如:FPS为50帧,前200ms渲染一帧,后800ms渲染49帧,虽然帧率50,但依然觉得非常卡顿。同时帧率FPS低,并不代表卡顿,比如无卡顿时均匀FPS为15帧。所以平均帧率FPS与卡顿无任何直接关系)

    PerfDog Jank计算方法: 

    1. 同时满足以下两条件,则认为是一次卡顿Jank.

        a) 当前帧耗时>前三帧平均耗时2倍。

        b) 当前帧耗时>两帧电影帧耗时(1000ms/24*2=84ms)。

    2. 同时满足两条件,则认为是一次严重卡顿BigJank.

        a) 当前帧耗时>前三帧平均耗时2倍。

        b) 当前帧耗时>三帧电影帧耗时(1000ms/24*3=125ms)。

        1) BigJank:1s内严重卡顿次数

        2) Jank(/10min):平均每10分钟卡顿次数。

        3) BigJank(/10min):平均每10分钟严重卡顿次数 

     l FTime(上下帧画面显示时间间隔,即认为帧耗时,iOS9.1以下系统暂时不支持)

        1) Avg(FTime):平均帧耗时 

        2) Delta(FTime):增量耗时(平均每小时两帧之间时间差>100ms的次数)

     l CPU Usage(Total整机/App进程,统计结果和Xcode一致,PerfDog使用率=Xcode使用率/核心数) 

     l Memory (是统计FootPrint,注:OOM与FootPrint有关,与系统、机型无关。只与RAM有关,如1G内存机器。FootPrint超过650MB,引发OOM)。注:PerfDog暂时在iOS9、10系统无法获取,其他版本ok。后续版本增加。如做性能测试,建议升级iOS系统版本

    Xcode Memory (XCode Debug gauges统计方式即XCode Memory)。注:iOS9、10系统暂时无法获取,其他版本ok。后续版本增加。如做性能测试,建议升级iOS系统版本

     l Real Memory(Xcode Instrument统计方式即Real Memory,实际占用物理内存。注:物理内存系统策略有关,衡量内存指标时不会关注,但是它有助于分析定位整体性能问题。比如:footprint没有降低,说明应用没有释放内存,但是real memory却降低了,说明系统对内存做了压缩。由于压缩会占用CPU资源,同时相应会导致FPS降低)

     l Virtual Memory(虚拟内存)

     l Wakeups(线程唤醒次数。注:超过150进程很大可能会被系统kill。a sleep/wake cycle on each thread per second,Exceeding limit of 150 wakeups per second over 300 seconds,特别是iOS13.2闷杀后台进程事件,建议重点关注)

     l CSwitch(上下文切换测试。注:单核超过14000进程会被系统Kill。Context Switch Limit 14000(Core/Second) 

     l GPU Utilization 

        1) Render:渲染器利用率(像素着色处理阶段,若占比高,说明是PS阶段出现瓶颈,shader过于复杂或纹理大小、采样复杂等) 

        2) Tilter:Tilter利用率(顶点着色处理阶段,若占比高,说明是VS阶段出现瓶颈,顶点数太多等原因)

        3) Device:设备利用率(整体GPU利用率)

     l Network(Recv/Send,测试目标进程流量,统计结果合Xcode一致)

     lBTemp(电池温度)

     lBattery Power(整机实时Current电流、Voltage电压、Power功耗)(注:20s获取一次,目前最精准的统计方式,结果和Battery life结果一致,支持所有iOS机型)

     l Energy Usage(即为Xcode Energy Impact。监控应用使用的能耗情况(包括CPU、GPU、NetWork、Location、Display (iPhone X only)、Overhead)。(注:和Xcode Energy Impact结果一致。有线模式下测试,支持iOS9及以上系统。Total Energy<=270为Low,270<Total Energy<=1000为High,Total Energy>1000为Very High)。

    参考:https://help.apple.com/xcode/mac/11.0/index.html?localePath=en.lproj#/devf7f7c5fcd

     l Log日志采集(WIFI模式下,不支持Log收集)

    Android平台

     l ScreenShot(只支持USB模式)

     l FPS(1秒内游戏画面或者应用界面真实平均刷新次数,俗称帧率/FPS)

        1) Avg(FPS):平均帧率(一段时间内平均FPS)

        2) Var(FPS):帧率方差(一段时间内FPS方差)

        3) Drop(FPS):降帧次数(平均每小时相邻两个FPS点下降大于8帧的次数)

     l Jank(1S内卡顿次数。解释说明如iOS平台说明)

        1) BigJank:1s内严重卡顿次数

        2) Jank(/10分钟):平均每10分钟卡顿次数。

        3) BigJank(/10分钟):平均每10分钟严重卡顿次数 

     l FTime(上下帧画面显示时间间隔,即认为帧耗时)

            1) Avg(FTime):平均帧耗时 

            2) Delta(FTime):增量耗时(平均每小时两帧之间时间差>100ms的次数)

     l CPU Usage(Total整机/App目标进程,统计结果和Android Studio Profiler一致)

     l CPU Clock(各个CPU核心的频率和使用率)

     l Memory (PSS Memory,统计结果和Android Java API标准结果一致,与Meminfo也一致。注:部分三星机器系统修改了Meminfo底层统计方式,导致Meminfo与Java AP统计结果不一致,新出三星机器已修复)

     l Swap Memory (Swap Memory,部分设备支持Swap功能,在启用Swap功能后,系统会对PSS内存进行压缩,Swap增加,PSS会相应减少,由于压缩会占用CPU资源,同时相应会导致FPS降低)

     l Virtual Memory(VSS)

     l Memory Detail(NativePSS、GFX、GL、Unknown)

     l GPU Usage(目前仅支持部分高通芯片手机)

     l GPU Frequency(目前仅支持部分高通芯片手机)

     l Network(Recv/Send)

     l CTemp(CPU温度)

     l Battery Power(Current电流、Voltage电压、Power功耗)(注:与仪器测试误差<3%左右)

     l Log日志采集(WIFI模式下,不支持Log收集)

    Web性能数据管理:

     l 账户信息管理

     l 性能数据管理、图表展示、编辑、版本对比

     l 性能测试任务管理

       为了保证测试结果的正确严谨性及可对比性。我们写了demo及APP进行测试对比。

    1、iOS平台:

        PerfDog性能狗测试数据结果与XCode/Instrument(苹果官方工具需要游戏源码编译测试)测试结果一致。(注:Xcode/Instrument性能影响较大,PerfDog(性能狗)性能影响很小)

    2、Android平台:

        安卓平台比较关注的是工具本身对手机性能影响,为了测试的严谨性、可对比性,我们在小米5手机上锁死最低频率。含截图测试影响结果如下:

        PerfDog(性能狗)性能影响:CPU占比6%-10%(正常频率下CPU占比1-3%)。

        其他工具性能影响:CPU占比27%-33%

        备注:工具本身性能影响大的话,手机容易发热,同时对游戏&应用性能有很大影响。

    使用步骤:

    步骤1:Window PC/苹果Mac机器上安装、运行PerDog(性能狗)客户端。

        iOS:若PerfDog检测不到连接手机或无法测试,请先安装确保最新itunes是否能连上手机(最新itunes可在QQ管家上直接下载安装)。

        Android:请开启手机USB调试模式及允许USB应用安装。

    步骤2:启动PerfDog(性能狗),然后USB连接手机,自动检测添加手机到应用列表中。

        iOS:则即插即用,用户无需做任何操作。

        Android:有两种模式,非安装模式和安装模式。(注:需开启USB调试模式)。

        a. 非安装模式:

    手机即插即用,无需任何设置及安装,使用非常简单,但手机屏幕上没有实时性能数据显示。

        b. 安装模式:

        需要在手机上自动安装PerfDog.apk,手机屏幕上有实时性能数据显示(允许USB应用安装和PerfDog悬浮窗管理权限),启动PC版PerfDog.exe,则会在手机上自动PUSH安装PerfDog.apk,具体安装类似各个手机厂商安装第三方APP提示安装即可。(注:由于很多手机安装需要账号密码,导致无法自动安装,如果自动安装失败,则会把安装文件PerfDog.apk释放到当前文件夹里,手动安装PerfDog.apk即可)。此模式下,在测试过程中,可能由于系统资源紧缺会kill PerfDog显示app(手机界面性能数据显示),但不影响正常测试功能。

    步骤3:测试模式

                    

     l USB模式测试:

    USB连线后,在设备列表选择USB图标设备进行USB模式测试

     l WIFI模式测试(测试功率):    

        只能在WIFI模式测试功率等信息。USB连线后,在设备列表选择WIFI图标设备进行WIFI模式测试。WIFI检测连接成功后,拔掉USB连接线。(注:需要PC和被测手机连接同一WIFI,WIFI检测连接成功后,拔掉被测手机USB线(USB模式测试功率无任何意义,会充电))(备注:一般公司WIFI可能做了安全策略限制,导致iOS平台在公司WIFI下无法使用)

    步骤4:选择测试的游戏&应用

     PC如图:

        Android平台,安装模式下,手机屏幕左上角有实时性能数据显示(Android手机请打开PerfDog悬浮窗管理权限,否则手机上不会显示性能参数)

  • 相关阅读:
    vue第十单元(动态组件 keep-alive(钩子函数) 递归组件(name) 组件命名约定)
    vue第九单元(非父子通信 events 单向数据流)
    vue第八单元(组件通信 子父,父子组件通信 自定义事件 事件修饰符 v-model props验证 )
    vue第七单元(vue的单文件组件形式-单文件组件的加载原理-vue-cli构建的开发环境以及生命周期)
    vue第六单元(vue的实例和组件-vue实例的相关属性和方法-解释vue的原理-创建vue的组件)
    vue第四单元(初识vue-在页面中直接引入vue框架-学习使用vue语法-vue的指令-介绍data用法-methods用法)
    vue第三单元(webpack的应用-能根据具体的需求构建对应的开发环境)
    vue第二单元(webpack的配置-学习webpack的常用配置)
    vue第一单元(初识webpack-webpack的功能-webpack的初步使用)
    ◆◆0如何debug后台Job程序(JDBG)
  • 原文地址:https://www.cnblogs.com/lvyinhaoqing/p/13037109.html
Copyright © 2011-2022 走看看