CN109697154A - 一种渲染性能可视化方法及装置 - Google Patents

一种渲染性能可视化方法及装置 Download PDF

Info

Publication number
CN109697154A
CN109697154A CN201710983686.4A CN201710983686A CN109697154A CN 109697154 A CN109697154 A CN 109697154A CN 201710983686 A CN201710983686 A CN 201710983686A CN 109697154 A CN109697154 A CN 109697154A
Authority
CN
China
Prior art keywords
control
pendulous frequency
measurement
rendering
display
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710983686.4A
Other languages
English (en)
Inventor
程哲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710983686.4A priority Critical patent/CN109697154A/zh
Publication of CN109697154A publication Critical patent/CN109697154A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请所述的渲染性能可视化方法及装置,在执行控件渲染时,将对控的属性的测量次数与绘制出的控件一起输出,从而使得开发者在开发界面的过程中,能够直接感知到界面渲染的性能,从而可以进一步有目的地优化性能。

Description

一种渲染性能可视化方法及装置
技术领域
本申请涉及电子信息领域,尤其涉及一种渲染性能可视化方法及装置。
背景技术
终端上展示的界面通常由控件组成,控件包括但不限于文本控件、图片控件、按钮控件以及输入框控件。在终端上看到的界面由终端上运行的系统将界面的每一帧中包括的控件绘制到终端的屏幕上形成。绘制控件以形成界面的过程称为渲染。
渲染性能即为绘制控件的性能,如果渲染性能好,则绘制速度快,那么人眼就感觉不到界面展示的卡顿。
目前,在开发界面的过程中,为了能够直接感知渲染性能研发人员需要为待测控件自定义一个测试控件,通过运行测试控件获知待测控件的渲染性能。因此,对于不同的控件,需要重新自定义测试控件,即测试控件不适用于不同的待测控件。可见,现有的这种渲染性能测试方法的扩展性不高,从而导致极低的效率。
发明内容
本申请提供了一种渲染性能可视化方法及装置,目的在于解决现有的渲染性能测试方法的效率不高的问题。
为了实现上述目的,本申请提供了以下技术方案:
一种渲染性能可视化方法,包括:
在执行控件渲染时,统计对所述控件的属性的测量次数;
将所述测量次数与所述控件一起输出。
可选的,对所述控件的属性的测量包括以下至少一个:
对所述控件的大小的测量、对所述控件的绘制区域的测量。
可选的,所述将所述测量次数与所述控件一起输出包括:
将所述测量次数显示在所述控件的显示位置附近。
可选的,所述将所述测量次数显示在所述控件的显示位置附近包括;
确定绘制所述控件的显示层;在显示所述控件时,将所述测量次数显示在所述显示层上。
可选的,所述在执行控件渲染时,统计对所述控件的属性的测量次数包括:
定位对所述控件的测量操作,并在执行所述测量操作时,执行统计所述控件的属性的测量次数的操作。
可选的,所述确定绘制所述控件的显示层包括:
定位对所述控件的绘制操作,确定绘制所述控件的显示层;
所述在显示所述控件时,将所述测量次数显示在所述显示层上包括:
在所述显示层上显示所述测量次数。
可选的,所述定位包括:
使用代码劫持的方式来完成所述定位操作。
一种渲染性能可视化装置,包括:
统计模块,用于在执行控件渲染时,统计对所述控件的属性的测量次数;
显示模块,用于将所述测量次数与所述控件一起输出。
可选的,所述对所述控件的属性的测量包括以下至少一个:
对所述控件的大小的测量、对所述控件的绘制区域的测量。
可选的,所述显示模块具体用于:
将所述测量次数显示在所述控件的显示位置附近。
可选的,所述显示模块具体用于:
确定绘制所述控件的显示层;在显示所述控件时,将所述测量次数显示在所述显示层上。
可选的,所述统计模块具体用于:定位对所述控件的测量操作,并在执行所述测量操作时,执行统计所述控件的属性的测量次数的操作。
可选的,所述显示模块具体用于:
定位对所述控件的绘制操作,确定绘制所述控件的显示层;
在所述显示层上显示所述测量次数。
可选的,所述统计模块具体用于:使用代码劫持的方式来完成所述定位操作;
所述显示模块具体用于:使用代码劫持的方式来完成所述定位操作。
一种计算机可读介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如下功能:在执行控件渲染时,统计对所述控件的属性的测量次数;将所述测量次数与所述控件一起显示。
本申请所述的渲染性能可视化方法及装置,在执行控件渲染时,将对控的属性的测量次数与绘制出的控件一起输出,从而使得开发者在开发界面的过程中,能够直接感知到界面渲染的性能,从而可以进一步有目的地优化性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种渲染性能可视化方法的流程图;
图2为本申请实施例公开的渲染性能可视化方法的执行效果图;
图3为本申请实施例公开的渲染性能可视化装置的结构示意图。
具体实施方式
在绘制待展示的界面中的任意一帧的过程中,渲染控件主要包括测量控件的大小、测量绘制区域以及绘制画布三个过程。
其中,测量控件的大小包括测量待绘制的控件的长和宽。在布局控件时,很可能开发者没有固定控件的长和宽,而是设置相对值,一个控件的长和宽依赖其它一个或多个控件的尺寸。测量绘制区域包括计算待绘制的控件在画布上的位置坐标,也可能需要反复计算。绘制画布包括按照前两步的测量结果在画布上绘制控件。
可见,测量控件的大小和测量绘制区域(统称为测量操作,绘制画布的操作称为绘制操作)可能需要反复进行。而通常,只有在16毫秒内完成一帧中的控件的绘制,才能避免用户感知到卡顿。所以,测量控件的大小和测量绘制区域这两步的执行次数对于渲染性能是有影响的。执行的次数越多,说明耗时越长,导致渲染性能越差。
本申请提供的渲染性能可视化方法及装置,将控件渲染过程中,测量控件的大小和测量绘制区域的执行次数展示在绘制出的控件上,实现执行次数的可视化,从而使得开发者在开发界面的过程中,能够直接感知到界面渲染的性能,从而可以进一步有目的地优化性能。并且,这种渲染性能可视化的方法适用于不同的控件,因此,而无需针对不同的控件进行调整或重复执行,因此具有较高的效率。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例公开的一种渲染性能可视化方法,可以针对至少一个控件的渲染执行。包括以下步骤:
S101:在执行控件渲染时,统计对控件的属性的测量次数。
如前所述,绘制控件主要包括测量控件的大小、测量绘制区域以及绘制画布三个过程。
基于渲染性能主要受测量控件的大小和测量绘制区域这两步的执行次数的影响的原理,因此,对控件的属性的测量包括:对所述控件的大小的测量、对所述控件的绘制区域的测量中的至少一个。
具体的,先定位对所述控件的测量操作,并在执行测量操作时,统计测量操作的次数。需要说明的是,对于不同的测量操作,可以分别统计测量次数,也可以合并统计一个总数。
S102:将测量次数与控件一起输出。
输出可以采用多种方式,例如,以文件记录方式输出,远程传输到测试记录服务器,或者,输出显示在屏幕上。
输出显示屏幕上是指,在完成渲染后,控件被显示出来,则将测量次数与控件一起显示。
具体的,将测量次数显示在控件的显示位置附近。例如,将测量次数显示在与控件的显示位置的距离在预设范围内的位置上。
具体的,如前所述,绘制控件包括绘制画布的过程,因此,显示测量次数的具体方式可以为:通过定位控件的绘制操作,确定绘制控件的显示层确定绘制控件的显示层,显示层可以为画布,在显示控件时,在显示层即画布上显示测量次数。
在统计控件的多个属性的测量次数的情况下,例如,同时统计对控件的大小的测量的次数以及对控件的绘制区域的测量的次数,可以将多个测量次数关联显示。例如,统计得到测量控件的大小的测量次数为M,测量控件的绘制区域的测量次数为N,则在控件的显示位置的附近,以M-N的格式,显示多个测量次数。
对渲染的界面中的每一个控件均执行上述过程,得到如图2所示的界面。从图2可以看出,每一个控件上均显示绘制该控件需要执行的测量该控件的大小的次数和测量该控件的绘制区域的次数。
从图2可以看出,图1所示的渲染性能可视化方法,将界面渲染过程中每一个控件的测量步骤的执行次数与该控件关联展示,因此,使得开发人员能够直观看到界面的渲染性能,从而看出需要优化的控件,因此,能够提高优化的效率。
更为重要的是,因为图1所示的方法在控件渲染之前加载自定义的程序,程序运行时实现对于函数执行次数的统计,所以,开发人员仅编写自定义的程序即可,无需编写用于测试的控件,显然,上述程序与控件相比,至少无需涉及控件层次的交互界面的设计,因此,更容易实现。并且,图1所述的方式,具有良好的扩展性,统计不同的控件的渲染次数,开发人员也无需重写自定义的代码。所以,在界面包括多个控件的情况下,能够提高优化的效率。
在图1所示的过程中,统计控件的属性的测量次数以及确定绘制控件的显示层,均需要先定位相应的操作。具体的,定位操作可以通过代码劫持的方式来完成。
代码劫持是指,在原始代码中加载自定义的程序代码,以使得在原始代码运行过程中,通过运行自定义的程序代码,实现自定义的功能。
本实施例中,自定义的功能即为定位操作。
可以使用多种方式来完成代码劫持,本方案中使用Xposed框架来作为示例,不做限制。
下面将以安卓系统的定位操作为例,举例说明图1所示的过程:
编写Xposed框架中的自定义的程序包XposedBridge.jar中的程序,使得XposedBridge.jar被执行后,能够实现以下功能:
1、从实现控件渲染的代码中定位测量控件的大小的函数和测量绘制区域的函数。
2、劫持控件大小的测量和绘制区域的测量过程,即在测量函数开始运行时,确定开始控件的测量操作,即定位到测量操作。
3、从界面渲染的代码中定位绘制画布的函数。
4、劫持绘制画布的过程,即在绘制函数开始运行时,确定开始控件的绘制操作,即定位到控件的绘制操作。
Xposed框架是一个针对Android平台的动态劫持项目。所谓“劫持”是指,Xposed框架中配置自定义的孵化进程,在Xposed框架启动后,自定义的孵化进程会替换安卓系统中原有的孵化进程,即zygote进程,自定义的孵化进程在启动过程中会加载自定义的程序包XposedBridge.jar,自定义的程序包中包括自定义的代码,用于实现用户某些想要的功能。也就是说,用户可以通过Xposed框架在系统中植入自定义的代码,用于改变现有的应用(简称APP)的一些功能。
本申请中,可以利用Xposed框架的上述功能,通过对自定义的程序包XposedBridge.jar的编写,实现对控件的测量代码和绘制代码的劫持,以实现定位测量过程和绘制过程的目的。
在设置好XposedBridge.jar后,运行Xposed框架,当用户触发界面显示的指令后,系统通过孵化进程孵化出界面显示进程,即界面显示函数开始被运行,在运行的过程中,基于上述自定义的程序,定位到控件的测量操作和绘制操作,基于定位,执行统计和显示测量次数的操作,控件的渲染函数的执行次数将被显示出来,如图2所示。
基于Xposed对原有业务运行过程无任何侵入性的特点,本实施例所述的渲染性能可视化方法,在将渲染性能可视化的基础上,不对界面的渲染过程造成干涉。
需要说明的是,本实施例以Xposed框架为例进行说明,除此之外,还可以使用其它具有对原有业务运行无任何侵入性的框架,例如Dexposed框架或者Legend框架替代Xposed框架。
图3为本申请实施例公开的一种渲染性能可视化装置,包括:统计模块和显示模块。
其中,统计模块用于在执行控件渲染时,统计对所述控件的属性的测量次数。显示模块用于将所述测量次数与所述控件一起显示。
上述各个模块的功能的具体实现过程,可以参见方法实施例,这里不再赘述。
本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (15)

1.一种渲染性能可视化方法,其特征在于,包括:
在执行控件渲染时,统计对所述控件的属性的测量次数;
将所述测量次数与所述控件一起输出。
2.根据权利要求1所述的方法,其特征在于,对所述控件的属性的测量包括以下至少一个:
对所述控件的大小的测量、对所述控件的绘制区域的测量。
3.根据权利要求1所述的方法,其特征在于,所述将所述测量次数与所述控件一起输出包括:
将所述测量次数显示在所述控件的显示位置附近。
4.根据权利要求3所述的方法,其特征在于,所述将所述测量次数显示在所述控件的显示位置附近包括;
确定绘制所述控件的显示层;在显示所述控件时,将所述测量次数显示在所述显示层上。
5.根据权利要求1所述的方法,其特征在于,所述在执行控件渲染时,统计对所述控件的属性的测量次数包括:
定位对所述控件的测量操作,并在执行所述测量操作时,执行统计所述控件的属性的测量次数的操作。
6.根据权利要求4所述的方法,其特征在于,所述确定绘制所述控件的显示层包括:
定位对所述控件的绘制操作,确定绘制所述控件的显示层;
所述在显示所述控件时,将所述测量次数显示在所述显示层上包括:
在所述显示层上显示所述测量次数。
7.根据权利要求5或6所述的方法,其特征在于,所述定位包括:
使用代码劫持的方式来完成所述定位操作。
8.一种渲染性能可视化装置,其特征在于,包括:
统计模块,用于在执行控件渲染时,统计对所述控件的属性的测量次数;
显示模块,用于将所述测量次数与所述控件一起输出。
9.根据权利要求8所述的装置,其特征在于,所述对所述控件的属性的测量包括以下至少一个:
对所述控件的大小的测量、对所述控件的绘制区域的测量。
10.根据权利要求8所述的装置,其特征在于,所述显示模块具体用于:
将所述测量次数显示在所述控件的显示位置附近。
11.根据权利要求10所述的装置,其特征在于,所述显示模块具体用于:
确定绘制所述控件的显示层;在显示所述控件时,将所述测量次数显示在所述显示层上。
12.根据权利要求8所述的装置,其特征在于,所述统计模块具体用于:定位对所述控件的测量操作,并在执行所述测量操作时,执行统计所述控件的属性的测量次数的操作。
13.根据权利要求11所述的装置,其特征在于,所述显示模块具体用于:
定位对所述控件的绘制操作,确定绘制所述控件的显示层;
在所述显示层上显示所述测量次数。
14.根据权利要求12或13所述的装置,其特征在于,所述统计模块具体用于:使用代码劫持的方式来完成所述定位操作;
所述显示模块具体用于:使用代码劫持的方式来完成所述定位操作。
15.一种计算机可读介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如下功能:在执行控件渲染时,统计对所述控件的属性的测量次数;将所述测量次数与所述控件一起显示。
CN201710983686.4A 2017-10-20 2017-10-20 一种渲染性能可视化方法及装置 Pending CN109697154A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710983686.4A CN109697154A (zh) 2017-10-20 2017-10-20 一种渲染性能可视化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710983686.4A CN109697154A (zh) 2017-10-20 2017-10-20 一种渲染性能可视化方法及装置

Publications (1)

Publication Number Publication Date
CN109697154A true CN109697154A (zh) 2019-04-30

Family

ID=66225125

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710983686.4A Pending CN109697154A (zh) 2017-10-20 2017-10-20 一种渲染性能可视化方法及装置

Country Status (1)

Country Link
CN (1) CN109697154A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216762A (zh) * 2007-12-29 2008-07-09 腾讯科技(深圳)有限公司 一种界面库架构方法
CN103309802A (zh) * 2012-03-16 2013-09-18 百度在线网络技术(北京)有限公司 一种移动终端中系统稳定性测试的方法及装置
CN105373520A (zh) * 2015-10-13 2016-03-02 金蝶软件(中国)有限公司 设置控件样式属性的方法和装置
CN106815134A (zh) * 2015-11-27 2017-06-09 北京奇虎科技有限公司 一种app测试方法和装置
CN107025583A (zh) * 2016-01-29 2017-08-08 阿里巴巴集团控股有限公司 一种页面控件的渲染方法、设备和终端设备
CN107038112A (zh) * 2016-10-13 2017-08-11 腾讯科技(北京)有限公司 应用界面的调试方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216762A (zh) * 2007-12-29 2008-07-09 腾讯科技(深圳)有限公司 一种界面库架构方法
CN103309802A (zh) * 2012-03-16 2013-09-18 百度在线网络技术(北京)有限公司 一种移动终端中系统稳定性测试的方法及装置
CN105373520A (zh) * 2015-10-13 2016-03-02 金蝶软件(中国)有限公司 设置控件样式属性的方法和装置
CN106815134A (zh) * 2015-11-27 2017-06-09 北京奇虎科技有限公司 一种app测试方法和装置
CN107025583A (zh) * 2016-01-29 2017-08-08 阿里巴巴集团控股有限公司 一种页面控件的渲染方法、设备和终端设备
CN107038112A (zh) * 2016-10-13 2017-08-11 腾讯科技(北京)有限公司 应用界面的调试方法及装置

Similar Documents

Publication Publication Date Title
US10038736B2 (en) Real user monitoring of single-page applications
AU2013201418B2 (en) Aircrew training system
CN110069580B (zh) 道路标注显示方法、装置、电子设备及存储介质
US10846110B2 (en) User interface usage measurement and user interface design using machine learning
CN108553894B (zh) 显示控制方法及装置、电子设备、存储介质
CN104063286B (zh) 显示内容变化的流畅度测试方法及装置
CN107844348B (zh) 基于配置图形的数据显示方法、装置和计算机存储介质
US20200104232A1 (en) Automated Determination of Web Page Rendering Performance
CN110866205A (zh) 用于存储信息的方法和装置
CN110580217A (zh) 软件代码健康度的检测方法、处理方法、装置及电子设备
CN105653441B (zh) 一种ui遍历测试方法与系统
CN109460543A (zh) 一种逻辑表达式的录入方法、装置、电子设备及可读介质
CN113986426A (zh) 图像检测方法、装置、可读介质及电子设备
CN113610136A (zh) 传感器数据同步方法、装置、计算机设备和存储介质
CN109697154A (zh) 一种渲染性能可视化方法及装置
US10372849B2 (en) Performing and communicating sheet metal simulations employing a combination of factors
JP7424440B2 (ja) コンピュータプログラム、情報処理方法及びコンピュータ
CN107590012B (zh) 设备掉线原因分析方法及装置、存储介质、电子设备
CN110825472A (zh) 图表颜色绘制方法、装置、可读存储介质和电子设备
CN113010046B (zh) 一种多窗模式下信号源的适配方法、电子设备、存储介质
CN109492032A (zh) 质量检测结果的展示方法、装置、电子设备及存储介质
CN113608972A (zh) 设备振动状态显示方法、装置、设备及存储介质
KR101422180B1 (ko) 어플리케이션 사용성 측정 방법, 이를 수행하는 어플리케이션 사용성 측정 서버 및 이를 저장하는 기록매체
CN108459854A (zh) 移动终端样式配置方法和装置
US20150331921A1 (en) Simulation system and simulation method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20190430

RJ01 Rejection of invention patent application after publication