展现时间确定方法和页面渲染完成时间的确定方法及装置与流程

文档序号:17474522发布日期:2019-04-20 06:02阅读:222来源:国知局
展现时间确定方法和页面渲染完成时间的确定方法及装置与流程

本申请涉及通信技术领域,尤其涉及展现时间确定方法和页面渲染完成时间的确定方法及装置。



背景技术:

目前,移动终端可以安装很多应用(app),应用性能的优劣会影响用户使用感受。在应用性能中应用启动耗时和页面切换耗时是两个重要指标。

目前在ios操作系统中,获取应用启动耗时的过程通常为:获取应用启动开始时间;获取应用调用“viewdidappear函数”的时间,并将该时间作为应用启动完成时间。将应用启动完成时间和应用启动开始时间的差值作为应用启动耗时。

目前在ios操作系统中,获取页面切换耗时的过程通常为:获取页面切换开始时间;获取应用调用“viewdidappear函数”的时间,并将该时间作为页面切换完成时间。将页面切换完成时间和页面切换开始时间的差值作为页面切换耗时。

但是,在应用启动过程中或页面切换过程中,应用在调用“viewdidappear函数”时,仅仅表示页面布局逻辑已经完成。此时页面并未渲染完成,当页面渲染完成后用户才可以查看到页面。对于ios系统而言,操作系统没有提供任何渲染结束的回调接口,所以无法利用回调接口来获取页面渲染完成时间。

对于用户而言,应用调用“viewdidappear函数”时间并非用户感受到的应用启动完成时间或页面切换完成时间;因此,现有技术方案确定的应用启动耗时和页面切换耗时不准确。



技术实现要素:

本申请发明人在研究过程中发现:

在应用的各个使用页面启动耗时或应用启动耗时的模块中添加代码,应用接收到服务器发送的网络请求响应后,利用添加代码来记录应用刷新页面的时间戳,将刷新页面的时间戳确定为页面切换完成时间或应用启动完成时间。

本方案中刷新页面的时间戳比应用调用“viewdidappear函数”时间靠后,但是,刷新页面的时间戳仍然早于页面渲染完成时间。并且,需要在应用各个使用页面启动耗时或应用启动耗时的模块中添加代码,实现过程较为繁琐。

所以,基于该方案确定的应用启动耗时和页面切换耗时仍然不准确,且,会对应用中模块造成代码侵入。

鉴于此,本申请提供一种展现时间确定方法和系统,可以在无代码侵入各个模块的情况下,准确确定应用展现时间,以便于为确定应用性能提供参考。

为了实现上述目的,本申请提供了下述技术特征:

一种页面渲染完成时间的确定方法,包括:

在页面渲染过程中对预设像素点集执行采样操作,并记录采样时间和所述预设像素点集对应的像素值集;

确定所述预设像素点集的相邻像素值集的变化量;

根据所述变化量确定页面渲染完成时间。

可选的,所述根据所述变化量确定页面渲染完成时间,包括:

在像素值集的变化量多次满足预设变化量的情况下,将像素值集的变化量小于或等于预设变化量的首次采样时间,确定为页面渲染完成时间。

可选的,所述像素值集的变化量多次满足预设变化量的情况,包括:

像素值集的变化率多次小于或等于预设变化率;或者,

像素值集的变化值多次小于或等于预设变化值。

可选的,所述预设变化量为零,则所述根据所述变化量确定页面渲染完成时间,包括:

在多个像素值集一致的情况下,将所述预设像素点集的当前像素值集对应的首次采样时间,确定为页面渲染完成时间。

可选的,所述预设像素点集包括一个像素点;则所述像素值集的变化量多次满足预设变化量的情况,包括:该像素点的像素值的变化量多次小于或等于预设变化量。

可选的,所述方法应用于ios系统中应用的原有模块之外的模块。

可选的,在页面渲染过程中对预设像素点集执行采样操作之前,还包括确定页面布局逻辑完成时间;

则所述方法还包括:

在页面渲染过程中接收到结束渲染指令后,停止采样操作;将所述页面布局逻辑完成时间,确定为所述页面渲染完成时间。

可选的,所述确定页面布局逻辑完成时间包括:

监控表示页面布局逻辑完成的函数;在所述函数被调用的情况下,记录所述函数被调用的时间;将该时间确定为页面布局逻辑完成时间。

可选的,在页面渲染过程中对预设像素点集执行采样操作之前,还包括确定操作开始时间;

则所述方法还包括:计算所述页面渲染完成时间与所述操作开始时间的时间差值;若所述时间差值在预设时间范围内,则将所述时间差值确定为操作的展现时间。

可选的,所述获取操作开始时间包括:获取应用启动开始时间,或,获取页面切换开始时间;

其中,所述获取应用启动开始时间包括:所述记录类的加载函数的时间,并将该时间确定为所述应用启动开始时间。

一种展现时间确定方法,包括:

获取操作开始时间;在页面渲染过程中对预设像素点集执行采样操作,并记录采样时间和所述预设像素点集对应的像素值集;

确定所述预设像素点集的相邻像素值集的变化量,并根据所述变化量确定页面渲染完成时间;

将所述页面渲染完成时间与所述操作开始时间的时间差值,确定为操作对应页面的展现时间。

可选的,所述方法应用于ios系统中应用的原有模块之外的模块。

可选的,所述获取操作开始时间包括:

获取应用启动开始时间,或,获取页面切换开始时间;

其中,所述获取应用启动开始时间包括:所述记录调用类的加载函数的时间,并将该时间确定为所述应用启动开始时间。

可选的,在页面渲染过程中对预设像素点集执行采样操作之前,还包括确定页面布局逻辑完成时间;

则所述方法还包括:

在页面渲染过程中接收到结束渲染指令后,停止采样操作;

将所述页面布局逻辑完成时间,确定为所述页面渲染完成时间。

可选的,在确定页面渲染完成时间之后,还包括:

计算所述页面渲染完成时间与所述操作开始时间的时间差值;

若所述时间差值在预设时间范围内,则进入将所述页面渲染完成时间与所述操作开始时间的时间差值,确定为操作的展现时间的步骤。

可选的,还包括:在所述展现时间大于阈值的情况下,确定展现页面过程出现异常。

可选的,还包括:计算操作对应页面的数据量;

基于所述数据量和所述展现时间,确定操作对应页面响应速度。

可选的,还包括:

在展现过程中,统计页面中多个属性的展现时间;其中,多个属性包括:文字属性、图片属性和视频属性;

输出各个属性的展现时间。

一种页面渲染完成时间的确定方法,包括:

在页面渲染过程中对预设像素点集执行采样操作,并记录采样时间和所述预设像素点集对应的像素值集;

在所述预设像素点集采样获得的多次像素值集一致的情况下,将所述预设像素点集的当前像素值集对应的首次采样时间,确定为页面渲染完成时间。

一种页面渲染完成时间的确定装置,包括:

记录单元,用于在页面渲染过程中对预设像素点集执行采样操作,并记录采样时间和所述预设像素点集对应的像素值集;

确定变化量单元,用于确定所述预设像素点集的相邻像素值集的变化量;

确定完成时间单元,用于根据所述变化量确定页面渲染完成时间。

可选的,所述确定完成时间单元根据所述变化量确定页面渲染完成时间,具体包括:在像素值集的变化量多次满足预设变化量的情况下,将像素值集的变化量小于或等于预设变化量的首次采样时间,确定为页面渲染完成时间。

可选的,所述像素值集的变化量多次满足预设变化量的情况,包括:像素值集的变化率多次小于或等于预设变化率;或者,像素值集的变化值多次小于或等于预设变化值。

可选的,所述预设变化量为零,则所述确定完成时间单元根据所述变化量确定页面渲染完成时间,包括:在多个像素值集一致的情况下,将所述预设像素点集的当前像素值集对应的首次采样时间,确定为页面渲染完成时间。

可选的,所述预设像素点集包括一个像素点;则所述像素值集的变化量多次满足预设变化量的情况,包括:该像素点的像素值的变化量多次小于或等于预设变化量。

可选的,在页面渲染过程中对预设像素点集执行采样操作之前,还包括确定布局逻辑完成时间单元,用于确定页面布局逻辑完成时间;则还包括:

确定完成时间单元,还用于在页面渲染过程中接收到结束渲染指令后,停止采样操作;将所述页面布局逻辑完成时间,确定为所述页面渲染完成时间。

可选的,所述确定页面布局逻辑完成时间包括:监控表示页面布局逻辑完成的函数;在所述函数被调用的情况下,记录所述函数被调用的时间;将该时间确定为页面布局逻辑完成时间。

一种展现时间确定装置,包括:

获取单元,用于获取操作开始时间;

记录单元,用于在页面渲染过程中对预设像素点集执行采样操作,并记录采样时间和所述预设像素点集对应的像素值集;

确定变化量单元,用于确定所述预设像素点集的相邻像素值集的变化量,并根据所述变化量确定页面渲染完成时间;

确定完成时间单元,用于将所述页面渲染完成时间与所述操作开始时间的时间差值,确定为操作对应页面的展现时间。

可选的,在页面渲染过程中对预设像素点集执行采样操作之前,还包括确定操作开始时间;其中,所述获取操作开始时间包括:获取应用启动开始时间,或,获取页面切换开始时间;

其中,所述获取应用启动开始时间包括:所述记录类的加载函数的时间,并将该时间确定为所述应用启动开始时间。

则还包括:

计算单元,用于计算所述页面渲染完成时间与所述操作开始时间的时间差值;

确定展现时间单元,用于若所述时间差值在预设时间范围内,则将所述时间差值确定为操作的展现时间。

可选的,还包括:确定异常单元,用于在所述展现时间大于阈值的情况下,确定展现页面过程出现异常。

可选的,还包括:确定响应速度单元,用于计算操作对应页面的数据量;基于所述数据量和所述展现时间,确定操作对应页面响应速度。

可选的,还包括:确定属性对应的展现时间,用于在展现过程中,统计页面中多个属性的展现时间;其中,多个属性包括:文字属性、图片属性和视频属性;输出各个属性的展现时间。

一种页面渲染完成时间的确定装置,包括:

记录单元,用于在页面渲染过程中对预设像素点集执行采样操作,并记录采样时间和所述预设像素点集对应的像素值集;

确定完成时间单元,用于在所述预设像素点集采样获得的多次像素值集一致的情况下,将所述预设像素点集的当前像素值集对应的首次采样时间,确定为页面渲染完成时间。

通过以上技术手段,可以实现以下有益效果:

本申请在应用中增加新的模块,利用该模块用来计算页面切换耗时和应用启动耗时,所以不会对原有模块产生侵入代码。并且,本申请利用像素值集不再变化的首次采样时间作为页面渲染完成时间,基于页面渲染完成时间计算得到的应用启动时间和页面切换时间,更加贴近用户真实感受。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种终端的示意图;

图2为本申请实施例公开的一种展现时间确定方法的流程图;

图3a-3b为本申请实施例公开的采样时间的示意图;

图4为本申请实施例公开的一种展现时间确定方法的流程图;

图5为本申请实施例公开的一种页面渲染完成时间的确定装置的示意图;

图6为本申请实施例公开的一种展现时间确定装置的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了便于本领域技术人员了解,本申请提供了一种移动终端,移动终端使用ios操作系统。参见图1,移动终端包括多个应用,每个应用可以包括多个实现业务功能的原有模块。

本申请为了避免对原有模块产生侵入代码,本申请在应用中增加新的模块,利用模块用来计算页面切换耗时和应用启动耗时。其它需要使用页面切换耗时或应用启动耗时的模块,可以从该模块中获取到页面切换耗时或应用启动耗时。

根据本申请提供的一个实施例,提供一种展现时间确定方法的实施例一。本方法集成于ios系统的应用中原有模块之外的模块(也即增加新的模块)。参见图2,具体包括以下步骤:

步骤s201:获取操作开始时间。

在用户触发应用图标的情况下,表示用户目前操作为打开应用,所以可以获取应用启动开始时间。

第一种实现方式:将调用“main函数”的时间,确定为应用启动开始时间。

在应用打开过程中应用会调用“main函数”,因此,模块可以监控“main函数”,并记录调用“main函数”的时间,将该时间作为应用启动开始时间。

第二种实现方式:记录调用类的加载函数的时间,并将该时间确定为所述应用启动开始时间。

在应用打开过程中会加载二进制文件,根据ios系统中objective-cruntime原理,ios操作系统在加载二进制文件时,应用会主动调用“类的加载函数”。因此,模块会监控“类的加载函数”,并将调用“类的加载函数”的时间,确定为应用启动开始时间。

由于调用“类的加载函数”的时间在调用“main函数”之前,因此,本实现方式确定的应用启动开始时间,更加接近用户点击应用图标的时间。

在用户触发应用子页面触发页面切换的情况下,获取页面切换开始时间。

根据用户触发子页面的情况不同,应用在执行页面切换时可能会调用“push函数”、“tab函数”或“addchildviewcontroller函数”。

因此,模块会监控表示页面切换的函数(例如,“push函数”、“tab函数”或“addchildviewcontroller函数”),并记录表示页面切换的函数的调用时间,将该时间作为页面切换开始时间。

步骤s202:获取页面布局逻辑完成时间。

应用在向服务器发送网络请求后会接收到服务器发送的网络响应,并根据网络响应进行页面布局。

在页面布局逻辑完成后应用会调用函数,例如:“viewdidlayoutsubviews函数”、“layoutsubviews函数”或“viewdidappear函数”。

因此,模块会监控表示页面布局逻辑完成的函数(例如,“viewdidlayoutsubviews函数”、“layoutsubviews函数”或“viewdidappear函数”),并记录函数被调用的时间,将该时间确定为页面布局逻辑完成时间。

步骤s203:在页面渲染过程中对预设像素点集执行采样操作,并记录采样时间和所述预设像素点集对应的像素值集。

由于ios系统中没有任何渲染完成后的回调接口,所以本申请发明人提供的技术方案为:在渲染过程中像素点的像素值会不断变化,在渲染过程中结束后,像素点的像素值不再变化。因此,通过像素值是否变化来确定渲染过程是否完成。

在页面布局逻辑完成后,应用会执行页面渲染过程。可以预先设定若干像素点,将若干像素点组成预设像素点集。对于预设像素点集中若干像素点的位置不做限定。

预设像素点集中各个像素点最好是分布在显示屏幕的不同区域,例如,显示屏幕分为上、下、左、右四个区域,则可以分别在四个区域各选择一个像素点。这样可以全方面得知各个区域是否渲染完毕。

可以理解的是,预设像素点集中像素点数量越多后续对比过程越多,较为耗费终端的cpu资源,所以预设像素点集可以包括一个像素点,这样可以仅对一个像素点执行对比过程,使得对比过程简单方便。

在渲染过程中可以对预设像素点集执行采样操作,并记录采样时间和预设像素点集的像素值集。在rgb模式下,像素值集为rgbr的具体值,其中r为红色的数值,g为绿色的数值,b为蓝色的数值,rgb的数值在0-255之间,r为透明度,数值在0-1之间。

通常情况下采样周期可以为固定的,例如为50ms或100ms,参见图3a所示以50ms为例进行采样。然后,模块对周期性获得多个像素值集进行对比操作。在终端性能较高时,不会对终端有不良影响。

在终端性能不是很好的情况下,不断对周期性获得多个像素值集进行对比操作,会对终端cpu运行造成较大压力。

参见图3b,本实施例提出可以采用以3次50ms,4次100ms,5次150ms为周期,开始进行屏幕像素值周期性采样。由于在刚开始渲染时渲染过程较快,因此采样频率较高,后续渲染过程较为缓慢,因此逐渐降低采样频率。

假设执行了5次采样操作,参见表1,为形象化表示的采样时间和像素值集(以预设像素点集包括一个像素点为例)。

表1

步骤s204:判断所述预设像素点集的像素值集是否不再变化,若是,则进入步骤s205,若否则进入步骤s204。

在获得第一次采样后得到采样时间10050ms和像素值集1,以及,第二次采样后得到的采样时间10100ms和像素值集2后,对比第一次的像素值集1和第二次的像素值集2发现两者不一致。

然后,在持续采样过程中,获得第三次采样后获得的采样时间10150ms和像素值集2,将第二次的像素值集2第三次采样得到的像素值集2进行对比,发现两者一致。

由于渲染过程中会出现不稳定情况,所以两次像素值集一致时,为了确保像素值不再变化还会继续验证后续的像素值是否也为像素值集2。

在后续对比过程中发现预设像素点集的像素值集又发生变化,变更像素值3。预设像素点集的像素值集3后不再变化;即连续预设次数的像素值一致时,确定预设像素点集的像素值集不再发生变化。

步骤s205:在所述预设像素点集的像素值集不再变化的情况下,将所述预设像素点集的当前像素值集对应的首次采样时间,确定为页面渲染完成时间。

延续上述举例,将像素值3的首次采样时间10200ms(第四次采样时间)作为页面渲染完成时间。

步骤s206:在页面渲染过程中接收到结束渲染指令,停止采样操作,将所述页面布局逻辑完成时间,确定为所述页面渲染完成时间。

在渲染过程中,可能会出现一些异常操作来结束渲染过程。例如,用户主动按“home键”使应用切换首页面,用户主动按“开机键”控制屏幕黑屏等等。

在页面渲染过程中接收到结束渲染指令后,则停止采样操作。由于此时预设像素点集还不稳定,所以将页面布局逻辑完成时间,确定为页面渲染完成时间。

步骤s207:计算所述页面渲染完成时间与所述操作开始时间的时间差值。

延续上述举例,页面渲染完成时间为10200ms,假设获取得到的操作开始时间9900ms,则两者的时间差值为300ms。

步骤s208:判断时间差值是否在预设时间范围内,若是则进入步骤s209,若否则结束。

技术人员按照经验设定应用启动耗时和页面切换耗时的最少时长,以及最大时长。由最少时长和最大时长组成预设时间范围。

模块判断时间差值是否在预设时间范围内,若在则表示时间差值有效(终端正常执行操作过程),进入步骤s209。若不在,则表示时间差值无效(终端执行操作过程中出现异常)。

步骤s209:将所述页面渲染完成时间与所述操作开始时间的时间差值,确定为操作的展现时间。

通过以上技术手段,可以实现以下有益效果:

本申请在应用中增加新的模块,利用该模块用来计算页面切换耗时和应用启动耗时,所以不会对原有模块产生侵入代码。并且,本申请利用像素值集不再变化的首次采样时间作为页面渲染完成时间,基于页面渲染完成时间计算得到的应用启动时间和页面切换时间,更加贴近用户真实感受。

根据本申请提供的另一个实施例,提供一种展现时间确定方法的实施例二。本方法集成于ios系统的应用中原有模块之外的模块(也即增加新的模块)。参见图4,具体包括以下步骤:

步骤s401:获取操作开始时间。

步骤s402:获取页面布局逻辑完成时间。

步骤s403:在页面渲染过程中对预设像素点集执行采样操作,并记录采样时间和所述预设像素点集对应的像素值集。以表1为例对像素值集的说明。

上述步骤s401-s403可以参见步骤s201-s203的具体描述,在此不再赘述。

步骤s404:确定所述预设像素点集的相邻像素值集的变化量。

延续上述举例,对变化量进行说明:

表2

步骤s405:在像素值集的变化量多次小于或等于预设变化量的情况下,将像素值集的变化量小于或等于预设变化量的首次采样时间,确定为页面渲染完成时间。

上述实施例中的精度较高,在一些针对渲染完成精度要求不高的情况下,可以设置一个预设变化量,在像素值集的变化量小于或等于预设变化量的情况下,确定页面渲染完成。

延续上述举例,假设预设变化量为0.1,可以发现在像素值集在序号2以后变化量为0,即变化量小于预设变化量。因此,可以将序号2对应的像素值集对应的采样时间确定为首次采样时间,并将该采样时间确定为页面渲染完成时间。

步骤s406:在页面渲染过程中接收到结束渲染指令,停止采样操作,将所述页面布局逻辑完成时间,确定为所述页面渲染完成时间。

步骤s407:计算所述页面渲染完成时间与所述操作开始时间的时间差值。

步骤s408:判断时间差值是否在预设时间范围内,若是则进入步骤s409,若否则结束。

步骤s409:将所述页面渲染完成时间与所述操作开始时间的时间差值,确定为操作的展现时间。

通过以上技术手段,可以实现以下有益效果:

本申请在应用中增加新的模块,利用该模块用来计算页面切换耗时和应用启动耗时,所以不会对原有模块产生侵入代码。并且,本申请利用像素值集不再变化的首次采样时间作为页面渲染完成时间,基于页面渲染完成时间计算得到的应用启动时间和页面切换时间,更加贴近用户真实感受。

在实施例一和实施例二之后,还可以计算操作对应页面的数据量;基于所述数据量和所述展现时间,确定操作对应页面响应速度;以便需要使用页面响应速度的模块,可以调用页面响应速度。

另外,在页面展现过程中,还可以根据页面内容的属性分别统计各个属性对应的展现时间,例如,统计文字属性的展现时间、统计图片属性的展现时间、统计视频属性的展现时间;以便需要使用各个属性展现时间的模块调用。

当然,还可以输出各个属性的展现时间,以便用户查看各个属性的展现时间,以确定页面性能是否良好。

参见图5,提供了一种页面渲染完成时间的确定装置,集成于ios系统的应用中原有模块之外的模块,所述装置包括:

记录单元401,用于在页面渲染过程中对预设像素点集执行采样操作,并记录采样时间和所述预设像素点集对应的像素值集;

确定单元402,用于在所述预设像素点集的像素值集不再变化的情况下,将所述预设像素点集的当前像素值集对应的首次采样时间,确定为页面渲染完成时间。

关于页面渲染完成时间的确定装置的具体实现过程可以参见图2所示的实施例,在此不再赘述。

参见图6,提供了一种展现时间确定装置,集成于ios系统的应用中原有模块之外的模块,所述装置包括:

获取单元501,用于获取操作开始时间;

记录单元401,用于在页面渲染过程中对预设像素点集执行采样操作,并记录采样时间和所述预设像素点集对应的像素值集;

确定单元402,用于在所述预设像素点集的像素值集不再变化的情况下,将所述预设像素点集的当前像素值集对应的首次采样时间,确定为页面渲染完成时间;

确定展现时间单元502,用于将所述页面渲染完成时间与所述操作开始时间的时间差值,确定为操作的展现时间。

关于展现时间确定装置的具体实现过程可以参见图2或图4所示的实施例,在此不再赘述。

本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1