UWA Gears 是UWA最新发布的无SDK性能分析工具。针对移动平台,提供了实时监测和截帧分析功能,帮助您精准定位性能热点,提升应用的整体表现。
其中实时监测Realtime模式提供了丰富的性能参数,通过深入了解每个性能参数项及其子参数,帮助您更精准地进行性能调优,确保用户获得最佳的使用体验。以下是Realtime模式下所有性能参数项及其子参数的详细介绍,供大家了解。
Screenshot (设备截屏)
Screenshot功能捕捉应用程序在不同时间点的屏幕截图,帮助开发者可视化应用的运行状态和界面变化,便于进行调试和优化。
FPS (运行帧率)
FPS (Frames Per Second) 是衡量游戏画面流畅度的重要指标。通过实时监测FPS,开发者可以了解游戏在不同场景下的帧率表现,及时发现和解决导致帧率下降的问题,同时通过Jank和BigJank参数识别和记录帧率波动情况,帮助发现和解决偶发的性能问题,提升用户体验。
- FPS:每秒帧数,显示应用程序的渲染帧率。
- Jank:每秒Jank帧的数量。Jank是指当前帧耗时大于前三帧耗时的两倍,且帧耗时在83ms到125ms之间的情况。
- BigJank:每秒BigJank帧的数量。BigJank是指当前帧耗时大于前三帧耗时的两倍,且帧耗时超过125ms的情况。
Memory Usage (设备内存)
内存使用情况直接影响应用的运行效率和稳定性。Memory Usage参数详细展示了设备的总内存使用情况,包括交换内存、可用内存和虚拟内存,帮助开发者优化内存管理,避免内存泄漏和不足的问题,确保应用稳定运行。
- Total Memory:设备总内存使用量。
- Swap Memory:交换内存的使用情况,当物理内存不足时,系统使用交换内存。
- Available Memory:当前可用的物理内存。
- Virtual Memory:虚拟内存使用情况。
Memory Detail (PSS内存细节)
Memory Detail提供了应用内存使用的详细信息,涵盖了进程共享内存和各类内存区域的使用情况。这些数据帮助开发者深入了解应用的内存分布,识别内存使用的热点和瓶颈,进行针对性的优化。
- PSS Total:当前进程实际占用的物理内存大小,是考虑了进程间共享内存后按比例分配得到的值。这个值反映了进程在物理内存中的实际占用情况,是Android内存管理中一个重要的性能指标。
- Unknown:未分类的内存使用。这部分内存尚未被归类到具体的内存段中。
- Native Heap:原生堆内存使用情况。由C/C++代码分配的内存,通常用于存储应用的数据和对象。
- Dalvik Heap:Dalvik虚拟机堆内存使用情况。用于存储Dalvik虚拟机管理的Java对象。
- GL mtrack:OpenGL内存跟踪。与图形渲染相关的内存使用,通常用于GPU资源。
- EGL mtrack:EGL内存跟踪。与EGL(OpenGL ES的原生窗口系统接口)相关的内存使用。
- Gfx Dev:图形设备内存使用。用于存储图形设备的数据。
- SO mmap:共享库的内存映射。由共享库(如.so文件)使用的内存。
- JAR mmap:JAR文件的内存映射。由JAR(Java ARchive)文件使用的内存。
- APK mmap:APK文件的内存映射。由APK(Android应用程序包)文件使用的内存。
- DEX mmap:DEX文件的内存映射。由DEX(Dalvik Executable)文件使用的内存,这些文件包含经过编译的应用程序代码。
- OAT mmap:OAT文件的内存映射。由OAT(Optimized Android Runtime)文件使用的内存,这些文件包含优化后的应用程序代码。
- ART mmap:ART虚拟机的内存映射。由ART(Android Runtime)虚拟机使用的内存。
- Other mmap:其他类型的内存映射。未被归类到特定类型的内存映射。
- Dalvik Other:Dalvik虚拟机的其他内存使用。Dalvik虚拟机管理的非堆内存部分。
- Other Dev:其他设备的内存使用。用于存储其他设备相关的数据。
- Stack:堆栈内存使用情况。用于存储线程的堆栈信息。
- Ashmem:匿名共享内存。用于跨进程共享的匿名内存段。
Temperature (设备温度)
设备温度是影响性能和硬件寿命的重要因素。Temperature参数实时监测设备的温度变化,特别是CPU、GPU和电池的温度,防止设备过热导致性能下降或硬件损坏,通过温度数据进行适当的性能调节,确保设备在安全温度范围内运行。
- CPU:监测CPU温度,防止过热。
- GPU:监测GPU温度,确保图形处理单元在安全温度范围内运行。
- Battery:监测电池温度,防止过热损害电池寿命。
Battery (电量)
Battery参数监测设备的电量消耗情况,帮助开发者优化应用的耗电量,延长设备的续航时间。通过了解电量消耗规律,开发者可以调整应用的运行策略,减少不必要的耗电,提供更好的用户体验。
- Battery Level:显示当前电池电量,帮助开发者优化电池使用,延长设备续航。
Voltage (电压) 暂未开放
Voltage参数监测设备的电压变化,确保设备在安全的电压范围内运行。通过电压数据,开发者可以防止电压波动对性能和硬件的影响,确保设备在高负载情况下依然能够稳定运行,提高整体性能和可靠性。
CPU Load (CPU总体使用率)
CPU Load展示了CPU的使用情况,包括单个进程和整体CPU的使用率。通过这些数据,开发者可以识别高资源消耗的进程,优化CPU使用效率,提升应用性能,确保在高负载下依然能够流畅运行。
- Process Usage:单个进程的CPU使用率,识别资源密集型进程。
- Total Usage:整体CPU使用率,了解系统总体性能负载。
CPU Load Norm (CPU总体使用率Normalized)
归一化的CPU使用率提供了更直观的性能负载情况。CPU Load Norm参数帮助开发者进行更加准确的性能评估和优化,通过归一化的数据,更容易比较不同进程和系统的CPU负载,识别和解决性能瓶颈。
归一化CPU使用率计算方式如下:
归一化CPU使用率 = 当前CPU使用率*当前时刻所有CPU频率之和/所有CPU频率最大值之和
- Process Usage:归一化的单个进程CPU使用率,提供更精确的资源消耗评估。
- Total Usage:归一化的整体CPU使用率,帮助识别和优化系统负载。
CPU Core Load (CPU核心使用率)
CPU Core Load参数详细展示了各个CPU核心的使用情况。这些数据帮助开发者优化多线程处理,提高CPU的整体使用效率,确保每个核心都能高效工作,避免性能瓶颈。
- CPU 0至CPU 7:展示每个CPU核心的使用率,帮助优化多核处理性能。
CPU Core Load Norm (CPU核心使用率Normalized)
归一化的CPU核心使用率数据,更准确地反映每个核心的性能负载。CPU Core Load Norm参数帮助开发者进行精细化的性能调节,通过归一化的数据,优化多线程处理,提高整体性能。
设备CPU各个核心的使用率计算方式如下:
设备CPU各个核心的使用率 = CPU[X]使用率*CPU[X]当前频率/CPU[X]最大频率
- CPU 0至CPU 7:归一化的各个CPU核心使用率,确保多线程处理的均衡负载。
![](https://img-blog.csdnimg.cn/img_convert/e613ce5be7f27b02266de6470a62e0ed.png)
CPU Core Frequency (CPU 单核频率)
CPU单核频率直接影响处理器的性能表现。CPU Core Frequency参数展示了各个CPU核心的工作频率,确保在高性能需求下维持适当的频率,通过频率数据优化CPU性能,满足应用的计算需求。
- CPU 0至CPU 7:展示每个CPU核心的频率,优化频率调节,提高处理性能。
Network (网络上传/下载流量) 暂未开放
Network参数监测网络的上传和下载流量,帮助开发者优化网络数据传输,提高在线游戏的流畅度和稳定性。通过这些数据,开发者可以识别网络瓶颈,优化数据传输策略,确保在网络波动情况下依然能够提供稳定的游戏体验。
GPU Clocks (GPU 时钟周期)
GPU时钟周期反映了图形处理单元的工作频率。GPU Clocks参数通过监测GPU的时钟周期,帮助开发者优化图形处理性能,提高游戏画面的流畅度和稳定性,确保在高图形负载下依然能够流畅运行。
- GPU Clocks:展示GPU的时钟周期,反映其工作频率,帮助优化图形处理性能。
GPU Bandwidth (GPU 带宽)
GPU带宽直接影响图形处理的效率。GPU Bandwidth参数详细展示了GPU的带宽使用情况,包括读取、写入、前端读取、加载存储读取和纹理读取的带宽,通过带宽数据优化图形处理效率,提升游戏画面的质量和流畅度。
- Read Total:总读取带宽。
- Write Total:总写入带宽。
- Front End Read:前端读取带宽,包含顶点部分的读取。
- Load Store Read:加载和存储读取带宽。
- Texture Read:纹理读取带宽。
GPU Primitive (GPU 图元处理)
GPU Primitive参数展示了不同阶段的图元处理情况,包括输入图元、裁剪图元和可见图元数量。这些数据帮助开发者优化渲染管线,提升图形处理性能,确保复杂场景下依然能够高效渲染。
- Input Primitives:输入的图元数量。
- Culled Primitives:被裁剪的图元数量。
- Visible Primitives:可见的图元数量。
- Facing Culling Primitives:正/反面裁剪的图元数量。
- Frustrum Culling Primitives:视锥裁剪的图元数量。
- Coverage Culling Primitives:微小面(低于像素大小)裁剪的图元数量。
GPU Utilization (GPU 使用率)
GPU Utilization参数细分了GPU各部分的使用率,包括片段处理单元和非片段处理单元。通过这些数据,开发者可以全面了解GPU的负载情况,进行针对性的优化,提升图形处理性能。
- Fragment Utilization:片段处理单元的使用率。
- Non-Fragment Utilization:非片段处理单元的使用率。
GPU Shaded (GPU 着色)
GPU Shaded参数提供了GPU着色过程中的详细数据,包括每像素的着色周期、着色的片段和顶点数量。通过这些数据,开发者可以优化着色器性能,提升图形处理的质量和效率。
- Cycle Per Pixel:每像素的着色周期。
- Fragment Shaded:着色的片段数量。
- Vertices Shaded:着色的顶点数量。
GPU Stall (GPU 缓存使用)
GPU Stall参数展示了GPU在读写操作中的等待时间。通过监测读取和写入的等待时间,开发者可以优化GPU的缓存使用,提高图形处理效率,减少等待时间,提高整体性能。
- Read Stall:读取过程中的停滞时间百分比,显示GPU在读取数据时的延迟情况。
- Write Stall:写入过程中的停滞时间百分比,显示GPU在写入数据时的延迟情况。
GPU Texture Cache Miss (GPU 纹理缓存数据)
GPU Texture Cache Miss参数提供了纹理缓存未命中率的数据,包括一级和二级纹理缓存。通过这些数据,开发者可以优化纹理缓存的使用,减少未命中率,提高图形处理性能,确保在复杂场景下依然能够高效渲染。
- Texture L1 Cache Miss:一级纹理缓存Miss的次数百分比,表示从L1缓存中读取纹理数据失败的比例。
- Texture L2 Cache Miss:二级纹理缓存Miss的次数百分比,表示从L2缓存中读取纹理数据失败的比例。
GPU Shader Cycles (Shader 时钟周期)
GPU Shader Cycles参数展示了各类Shader操作的时钟周期,包括算术运算、插值运算、加载存储和纹理操作的时钟周期。通过这些数据,开发者可以优化Shader程序的性能,减少不必要的计算,提高处理效率。
- Shader Arithmetic Cycles:算术运算的时钟周期。
- Shader Interpolator Cycles:插值运算的时钟周期。
- Shader LoadStore Cycles:加载和存储操作的时钟周期。
- Shader Texture Cycles:纹理操作的时钟周期。
GPU Texture Filtering (纹理采样过滤)
GPU Texture Filtering参数展示了不同过滤方式的纹理采样使用情况,包括线性过滤、最近邻过滤和各向异性过滤。通过这些数据,开发者可以优化纹理采样,提高图形处理的质量和效率,确保在高图形负载下依然能够提供清晰的画面。
- Linear Filtered:线性过滤的纹理采样百分比,显示使用线性过滤方式处理的纹理比例。
- Nearest Filtered:最近邻过滤的纹理采样百分比,显示使用最近邻过滤方式处理的纹理比例。
- Anisotropic Filtered:各向异性过滤的纹理采样百分比,显示使用各向异性过滤方式处理的纹理比例。
- Non-Base Level Filtered:非基础层级过滤的纹理采样百分比,显示在多级纹理中使用非基础层级过滤处理的纹理比例。
GPU Shader Instructions (Shader 单元总指令集数)
GPU Shader Instructions参数提供了Shader指令集的总数量,帮助开发者优化Shader程序,减少不必要的指令,提高图形处理效率,确保在复杂图形计算中依然能够高效运行。
- Total Instruction:总指令集数量,帮助优化Shader程序的性能。
GPU Freq (GPU 频率)
GPU Freq参数展示了GPU的工作频率,反映在不同负载下的频率变化。通过频率数据,开发者可以优化GPU性能,确保在高图形负载下依然能够稳定运行,提高图形处理的稳定性和流畅度。
- GPU Freq:展示GPU的工作频率,反映在不同负载下的频率变化。
GPU Usage (GPU 使用率)
GPU Usage参数实时监测GPU的总体使用率,帮助开发者全面了解GPU的负载情况,优化图形处理性能,确保在高图形负载下依然能够提供流畅的游戏体验。
- GPU Usage:展示GPU的总体使用率,反映GPU的负载情况,即当前频率与最大频率的比值。
GPU Load (GPU 加载率)
GPU Load参数展示了GPU的总体加载情况,反映GPU的工作负载。通过加载率数据,开发者可以优化GPU的性能,提高图形处理的稳定性和效率,确保在高负载下依然能够流畅运行。
- GPU Load:GPU负载百分比,即GPU工作时间占总时间的比值,显示GPU的当前负载情况,有助于了解GPU的工作压力和性能瓶颈。
GPU DDR Freq (GPU DDR频率)
GPU DDR Freq参数展示了GPU DDR的工作频率,确保在高性能需求下维持适当的数据传输率。通过频率数据,开发者可以优化GPU内存的使用效率,满足高图形负载下的内存需求,提高整体性能。
- GPU DDR Freq:展示GPU DDR的工作频率,确保在高性能需求下维持适当的数据传输率。
GPU Bus Utilization (GPU 内存总线利用率)
GPU Bus Utilization参数反映了GPU内存总线的利用情况,帮助开发者优化数据传输效率,提高GPU的整体性能和稳定性,确保在高数据传输需求下依然能够高效运行。
- GPU Memory Bus Utilization:GPU内存总线使用率百分比,显示GPU在内存总线上的数据传输效率,有助于了解内存带宽利用情况。
如果您在使用过程中遇到任何问题,可以通过私信我们,或者前往问答社区进行提问,我们将竭诚为您提供支持。
问答社区链接:UWA问答 | 游戏开发者互动问答社区 | 侑虎科技