OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导

这篇具有很好参考价值的文章主要介绍了OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

SmartPerf Editor是一款PC端桌面应用,通过监测、采集应用运行时FPS、CPU、GPU、Memory、Battery、Network等性能数据,帮助开发者了解应用的性能状况。SmartPerf Editor还集成了DrawingDoc功能,可录制Render Service绘制指令,回放并生成不同图形库文件。通过逐帧逐绘制指令回放,来识别是否存在冗余绘制、是否可以优化绘制指令的数量,从而提升页面绘制性能。本文首先介绍DrawingDoc录制回放原理,然后结合场景示例阐述DrawingDoc在性能实践中的应用。SmartPerf Editor更多信息可查看SmartPerf Editor。

原理介绍

图1 Render Service处理流程图
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

Render Service详细步骤如下:

  1. 预处理:Render Service会接收渲染请求,并对其进行预处理,这个过程包括解析渲染指令、准备渲染资源、设置渲染环境等。
  2. 渲染树遍历:Render Service遍历构建生成的渲染树,对每个节点进行适当的处理,包括应用样式、计算布局、生成绘制指令等。
  3. RS绘制指令录制回放:在遍历渲染树的过程中,RenderService会生成RS绘制指令。RS指令录制时仅录制每帧的脏区内容,并将RS侧的绘制指令打包写入到文件中。RS指令回放时,使用OpenHarmony原本渲染库和程序读取指令文件。
  4. 生成Skia指令和DDGR指令:RS绘制指令会被转换为Skia指令和DDGR指令,Skia和DDGR是一个2D图形库,用于绘制各种形状、文本和图像。
  5. 生成Vulkan指令和OpenGL指令:DDGR指令会被转换为Vulkan指令,Skia指令会被转换为Vulkan指令和OpenGL指令。Vulkan和OpenGL是图形API,用于在硬件上执行高效的图形计算。
  6. GPU处理:Vulkan指令或OpenGL指令被发送到GPU进行处理,GPU会将接收到的指令转换为像素渲染操作,最终将页面渲染到屏幕上。

使用约束

  • Windows 7及以上操作系统的电脑。
  • 工具需要使用华为账号登录,需要提前注册。
  • 工具下载地址:XXX。
  • 支持OpenHarmony,HarmonyOS和Android操作系统(其中DrawingDoc功能目前仅支持OpenHarmony操作系统)。
  • USB连接或者WIFI连接。

场景示例

图2 场景预览图
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

@Entry
@Component
struct Index {
  @State isVisible: Visibility = Visibility.None;

  build() {
    Column() {
      Button("显示/隐藏Image")
        .onClick(() => {
          if (this.isVisible == Visibility.Visible) {
            this.isVisible = Visibility.None
          } else {
            this.isVisible = Visibility.Visible
          }
        })
      Stack() {
        Row().width('40%').height('40%').backgroundColor(Color.Pink)
        Text("Hello World").fontSize(40)
        Image($r('app.media.image')).width('100%').height('100%')
      }.width('100%').height('100%').backgroundColor(Color.Green).visibility(this.isVisible)
    }.width('100%')
  }
}

下文基于上述场景介绍SmartPerf Editor中DrawingDoc的使用,以及如何使用Skia Debugger工具网站分析skp文件。

录制数据

在分析skp文件之前,需要先使用DrawingDoc录制Skia指令,生成skp文件,具体步骤如下:

1.打开SmartPerf Editor,在主界面左侧导航点击“DrawingDoc”>“录制”。
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

2.点击“跳过安装”。
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

3.设置“录制最大帧”。本示例中录制最大帧设置40。

4.点击“开始录制”,同时在测试设备上操作要录制的测试页面,刷新上一步设定的帧数后,即自动完成录制。本示例中,点击测试页面的“显示/隐藏Image”按钮,显示图片。
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

5.录制完成后,点击右下角的“导出文件”。
6.导出文件进度结束后,在主界面左侧导航点击“DrawingDoc”>“回放”。
7.“回放文件来源”选择“使用设备最近一次录制”,点击“导入文件”。也可以选择“从本地文件选择”,选择指定的frame开头的文件夹。frame开头的回放文件夹默认存放在D:\ProgramData\SmartPerf_Editor\graphic。
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

8.打开“生成skp文件”。
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

① 设置skp文件名。.mskp表示生成多帧录像文件,.skp表示生成单帧录像文件。本示例中使用多帧录像文件,skp文件名设置为test.mskp。

② 设置录制帧数。录制帧数不得大于前面设置的录制最大帧。本示例中录制帧数设置为40。

9.点击“设置SKP参数”,“开始生成”,会在“SKP文件列表”显示生成的test.mskp文件。再点击“结束生成”,“导出SKP文件”。在D:\ProgramData\SmartPerf_Editor\graphic目录下,找到最新时间的skp开头的目录,里面存放的就是当前最新生成的mskp文件。mskp文件会记录整个录制过程中的产生的Skia指令。 以上就是录制Skia指令生成mskp文件的过程。

分析数据

使用Skia Debugger工具网站分析上述获取的mskp文件,具体步骤如下:

1.打开“生成skp文件”页面上“导出SKP文件”按钮右边的链接“打开SKP Debugger”或者直接打开https://debugger.skia.org/,会跳转到SKP Debugger工具网页。点击“选择文件”,在D:\ProgramData\SmartPerf_Editor\graphic目录下找到要分析的skp文件。本示例中选择前面生成的test.mskp文件。
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

打开后可以看到如下界面,这里介绍一下SKP Debugger的常用功能。有关SKP Debugger的详细介绍可查看Skia Debugger。
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

① SKP文件播放进度条。可循环播放录制的画面,也可以点击选中一帧,查看它的Skia指令和视图。

② Skia指令栏。显示选中一帧上所有的Skia指令。点击单个Skia指令可以查看该指令相关的Skia属性。比如像Image绘制指令里useCubic属性为true,表示该Image组件使用了useCubic算法,可以推测出Image使用了图片插值属性interpolation。使用高图片插值可能会影响图片渲染的速度,开发者可以考虑是否优化。

③ SKP视图。显示当前选中的Skia指令对应的视图。“Image Resources”会显示skp文件用到的所有图片资源。

④ Show Clip。勾选Show Clip后,可以查看单个Skia指令目前执行的位置,会有浅蓝色背景选中效果。Clip表示当前执行的Skia指令绘制区域的左上角和右下角坐标位置。Matrix是3D变换的矩阵信息。

⑤ Skia命令直方图。统计当前帧上每个Skia指令出现的次数。Draw开头的是绘制指令。

2.点击播放键,查看本示例中test.mskp记录的40帧视图的变化过程。
3.找到本示例中绘制图片的帧。
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

4.单击右下角Skia命令直方图上的指令项,指令项背景会变粉色,可过滤掉选定的Skia指令。本示例主要关注Draw开头的绘制指令,这里把Draw开头的绘制指令筛选出来。
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

5.点击播放按钮观察这一帧的绘制过程。也可以手动在左侧Skia指令栏从上到下依次点击绘制指令查看。
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

6.通过观察SKP视图上这一帧的绘制过程,可以发现在图片绘制之前,先绘制一个粉色背景和一段“Hello World”的文字。这些被图片遮挡的内容用户无法感知,也没有实际的作用,开发者就可以分析出存在冗余的绘制组件。
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

7.在本示例中根据SKP视图找到并删除对应页面上的冗余组件。
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

8.使用优化后的应用,重新录制mskp,在Skia Debugger上可以看出绘制指令有所减少。
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

对比优化冗余组件前后的skp文件可以看出,去除冗余组件后绘制指令由原来的12个降低到10个,页面需要执行的Skia指令总数由78个下降到63个,Skia指令总量下降19%,有效提升页面的绘制性能。 冗余组件删除前后Skia指令数量对比:
OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

通过上述示例介绍DrawingDoc录制回放,以及使用Skia Debugger分析应用页面是否存在冗余绘制,进而对其进行优化。在实际复杂的应用页面中,如果存在冗余组件,页面绘制时执行额外的Skia指令会加重GPU负载,使页面组件刷新和渲染耗时变长,影响页面性能。使用DrawingDoc和Skia Debugger,可以通过抓取底层Skia指令,逐帧逐绘制指令回放应用页面上各个组件的绘制细节,从而帮助开发者减少应用页面的冗余绘制,有效提升应用绘制性能。

如果大家还没有掌握鸿蒙,现在想要在最短的时间里吃透它,我这边特意整理了《鸿蒙语法ArkTS、TypeScript、ArkUI等…视频教程》以及《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

鸿蒙语法ArkTS、TypeScript、ArkUI等…视频教程:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

OpenHarmony APP开发教程步骤:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

《鸿蒙开发学习手册》:

如何快速入门:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.基本概念
2.构建第一个ArkTS应用
3.……

OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

开发基础知识:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
9.……

OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

基于ArkTS 开发:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16.……

OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发

鸿蒙生态应用开发白皮书V2.0PDF:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导,OpenHarmony,HarmonyOS,鸿蒙,OpenHarmony,鸿蒙工程师,harmonyos,华为,鸿蒙应用开发,鸿蒙系统,鸿蒙开发文章来源地址https://www.toymoban.com/news/detail-861146.html

到了这里,关于OpenHarmony实战开发-性能测试工具SmartPerf Editor使用指导的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【墙裂推荐!】十款开源测试开发工具(自动化、性能、造数据、流量复制)​

    目录 1、AutoMeter-API 自动化测试平台 2、QA Wolf 浏览器自动化测试工具 3、Mimesis 用于 Python 的高性能虚假数据生成器 4、Ddosify 高性能负载测试工具 5、AutoCannon HTTP/1.1 基准测试工具 6、Sharingan 流量录制回放工具 7、randdata 随机测试数据生成工具 8、DrissionPage WEB 自动化测试集成工具

    2024年02月06日
    浏览(36)
  • OpenHarmony分布式软总线API调用测试工具 softbus_tool使用说明

    softbus_tool 是 OpenHarmony 分布式软总线 API 调用测试工具 ,文件结构如下图所示。 softbus_tool 能够将软总线 interfaces 目录下的一些常用接口集中起来,供设备间搭建一些场景时使用(比如设备绑定、BR 组网,BLE 组网, 指定 P2P 链路传输等)。 softbus_tool 一般的使用流程为: 1.使用

    2024年04月14日
    浏览(35)
  • 【工具/性能】开源的性能测试工具sysbench

    sysbensh是一个非常通用的benchmark工具,其提供多种方面的测试: cpu :提供一个简单的cpu benchmark测试 fileio:文件磁盘io的benchmark测试 memory:内存访问 benchmark测试 thread:线程调度 benchmark测试 mutex:POSIX的锁 benchmark测试 OLTP:数据库 benchmark测试,支持MySQL,Pgsql 默认支持MySQL,如

    2024年02月12日
    浏览(35)
  • H5性能测试以及H5性能测试工具

    背景由于公司最近项目有一个H5测试项目,功能测试不用多说,但是H5性能测试是一个大难题,于是研究下H5性能测试,下面总结下,希望能帮助自己回顾项目也希望能帮到测友。 H5性能测试的常用指标: 白屏时间:用户首次看到网页内容的时间,即第一次渲染流程完成的时间

    2024年02月14日
    浏览(50)
  • 前端性能测试必备测试工具

    我们在使用网站过程中,经常会遇到慢的问题,为了找到原因,一般需要借助工具进行检测,通过工具,可以检测出前端站点加载资源的相关详细情况。 今天,就给大家介绍几款前端性能测试分析工具,结合性能测试工具,实现通过量化的方式测试网站中诸如首字节加载时间

    2024年02月05日
    浏览(40)
  • 功能测试(八)—— APP之专项测试、性能测试、性能测试工具SoloPi

    目录 APP测试要点 目标 一、APP专项测试 1.1 兼容性 1.2 安装 1.3 卸载 1.4 升级 1.5 干扰测试(交叉事件测试) 1.6 Push推送 1.7 用户体验 二、 性能测试工具 2.1 APP性能测试工具介绍 —— SoloPi简介 2.2 APP性能测试工具 —— SoloPi使用 三、APP性能测试 3.1 CPU 3.2 内存 3.3 流量 3.4 电

    2024年02月03日
    浏览(42)
  • jmeter 性能测试工具的使用(Web性能测试)

    1、下载 该软件不用安装,直接解压打开即可使用。 2、使用 这里就在win下进行,图形界面较为方便 在目录apache-jmeter-2.13bin 下可以见到一个jmeter.bat文件,双击此文件,即看到JMeter控制面板。主界面如下: 3、创建线程组 测试计划--右键——》添加——》hreads——》线程组 设

    2024年02月10日
    浏览(51)
  • 性能测试怎么做?测试工具怎么选择?

    在当前软件测试行业,熟练掌握性能测试已经是测试工程师们面试的敲门砖了,当然还有很多测试朋友们每天的工作更多的是点点点,性能方面可能也只是做过简单的并发测试,对于编写脚本,搭建环境方面也比较陌生。今天这篇文章就给大家梳理一下如何去做性能测试,和

    2024年02月13日
    浏览(37)
  • iOS性能指标和性能测试工具

    作为一名软件测试工程师,在测试 iOS 应用的性能时,需要关注以下几个方面: 1. 响应时间:应用的启动时间、页面加载速度、接口响应时间等。 2. CPU 使用率:应用在各种操作下的 CPU 占用情况。 3. 内存使用:应用在各种操作下的内存占用情况。 4. 网络性能:应用在各种

    2024年02月13日
    浏览(37)
  • Linux性能测试工具

    在Linux Benchmark Suite Homepage网站上列举了诸多Linux性能测试工具,包括CPU/RAM/ROM/Cache/net等性能测试。 测试工具 这个工具集中包含以下几种测试工具,我们主要使用到bw_mem工具进行Memory read和write测试。 Bandwidth benchmarks(带宽测试) Cached file read Memory copy (bcopy) Memory read Memory write Pi

    2023年04月08日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包