加速实现浏览器渲染的方法及浏览器与流程

文档序号:12786001阅读:219来源:国知局
加速实现浏览器渲染的方法及浏览器与流程

本发明涉及一种计算机技术,尤其涉及一种加速实现浏览器渲染的方法及浏览器。



背景技术:

随着超文本标记语言HTML以及网络脚本JavaScript技术的发展,浏览器中的内容变得更加丰富和有趣,在网页中办公、玩游戏、甚至处理图像都已经实现并应用越来越广泛,而且在浏览器中出现大型的3D游戏、高清晰的多媒体视频也成为发展趋势,但将所有的浏览器的图像处理工作全部交由CPU处理,会消耗大量的CPU资源,甚至导致CPU无法正常完成任务。

对一些图形操作来说,利用图形处理芯片(Graphic Processing Unit,以下简称为GPU)比中央处理器CPU的处理效率更高,比如GPU在执行Alpha混合与双线性图形缩放的时候就比CPU快得多,还可以利用像素着色器执行复杂的每像素计算。而且执行更多任务,CPU资源就得以释放给其他浏览器子系统,还能获得更流畅的动画和视频播放效果。

现有的浏览器中已经出现了使用GPU硬件加速实现对浏览器渲染的方法,在开启该项功能后,对于网页中指定类型的网页元素,都会自动地发送到GPU中进行渲染,以加快网页的渲染过程。但是实际使用中,GPU都是由显卡来实际进行渲染并给出实际的渲染结果数据,以在显示器上进行显示。但是并非所有的显卡都支持硬件加速技术,而且支持GPU加速技术的显卡的版本型号是千差万别,同一显卡的驱动版本也有区别。因此,开启硬件加速功能后,由于以上差异性,显卡存在不能正确地对处理所有指定类型的网页元素,浏览器出现蓝屏或者崩溃的概率很高,在出现这类故障的情况下,只能通过禁用浏览 器的硬件加速功能,牺牲CPU的资源来提高浏览器的稳定性。针对以上因硬件加速导致出现浏览器蓝屏或崩溃的现象,现有技术中尚未提出有效的解决方案。



技术实现要素:

针对现有技术中的缺陷,本发明以便提供一种克服上述问题或者至少部分地解决上述问题的浏览器和相应的加速实现浏览器渲染的方法。

第一方面,本发明提供一种加速实现浏览器渲染的方法,安装该浏览器的设备的显卡具有图形处理器GPU硬件加速功能,所述方法包括:

监测所述显卡是否开启GPU硬件加速功能,若开启,则获取预设时间段内与所述GPU硬件加速功能相关的每一进程的运行状态信息;

将获取的与所述GPU硬件加速功能相关的每一进程的运行状态信息发送云服务器,以使所述云服务器根据与所述GPU硬件加速功能相关的每一进程的运行状态信息确定是否关闭所述GPU硬件加速功能。

可选地,在所述云服务器确定不关闭所述GPU硬件加速功能时,所述方法还包括:

接收所述云服务器发送的关键进程的信息表,所述关键进程不包含所述GPU硬件加速功能相关的每一进程;

根据所述关键进程的信息表,获取预设时间段内所述信息表中的关键进程的运行状态信息;

将获取的所有关键进程的运行状态信息发送所述云服务器,以使所述云服务器根据所述关键进程的运行状态信息和与所述GPU硬件加速功能相关的每一进程的运行状态信息确定是否关闭所述GPU硬件加速功能。

可选地,在所述云服务器确定不关闭所述GPU硬件加速功能时, 所述方法还包括:

接收所述云服务器发送的获取所述设备中显卡信息的请求;

根据所述请求,将所述设备中显卡信息发送所述云服务器,以使所述云服务器根据该显卡信息确定所述设备的硬件加速列表;

接收所述云服务器发送的硬件加速列表,所述硬件加速列表中对应有所述显卡支持进行GPU硬件加速的网页元素类型;

根据所述网页元素类型确定待关闭的第一进程,所述待关闭的第一进程为与所述GPU硬件加速功能相关的所有进程中的与所述网页元素类型无关的进程;

关闭所述待关闭的第一进程。

可选地,与所述GPU硬件加速功能相关的进程包括:gpu进程、插件进程和渲染进程中的一种或多种。

可选地,预设时间段内与所述GPU硬件加速功能相关的每一进程的运行状态信息包括:

预设时间段内每一进程的断开次数,连接次数和每一次断开时间点信息,每一进程最后的运行状态。

第二方面,本发明提供一种浏览器,安装该浏览器的设备的显卡具有图形处理器GPU硬件加速功能,该浏览器包括:

监测单元,用于监测所述显卡是否开启GPU硬件加速功能;

获取单元,用于在监测单元监测到所述显卡开启GPU硬件加速功能之后,获取预设时间段内与所述GPU硬件加速功能相关的每一进程的运行状态信息;

发送单元,用于将获取的与所述GPU硬件加速功能相关的每一进程的运行状态信息发送云服务器,以使所述云服务器根据与所述GPU硬件加速功能相关的每一进程的运行状态信息确定是否关闭所述GPU硬件加速功能。

可选地,在所述云服务器确定不关闭所述GPU硬件加速功能时, 所述浏览器还包括:

接收单元,用于接收所述云服务器发送的关键进程的信息表,所属关键进程不包含所述GPU硬件加速功能相关的每一进程;

所述获取单元,还用于根据接收单元接收的所述关键进程的信息表,获取预设时间段内所述信息表中的关键进程的运行状态信息;

所述发送单元,还用于将所述获取单元获取的所有关键进程的运行状态信息发送所述云服务器,以使所述云服务器根据所述关键进程的运行状态信息和与所述GPU硬件加速功能相关的每一进程的运行状态信息确定是否关闭所述GPU硬件加速功能。

可选地,在所述云服务器确定不关闭所述GPU硬件加速功能时,所述浏览器还包括:

接收单元,用于接收所述云服务器发送的获取所述设备中显卡信息的请求;

所述发送单元,还用于根据所述接收单元接收的请求,将所述设备中显卡信息发送所述云服务器,以使所述云服务器根据所述显卡信息确定所述设备的硬件加速列表;

所述接收单元,还用于接收所述云服务器发送的硬件加速列表,所述硬件加速列表中对应有所述显卡支持进行GPU硬件加速的网页元素类型;

确定单元,用于根据所述接收单元接收的所述硬件加速列表中的网页元素类型确定待关闭的第一进程,所述待关闭的第一进程为与所述GPU硬件加速功能相关的所有进程中的与所述网页元素类型无关的进程;

关闭单元,用于关闭所述待关闭的第一进程。

可选地,与所述GPU硬件加速功能相关的进程包括:gpu进程、插件进程和渲染进程中的一种或多种。

可选地,预设时间段内与所述GPU硬件加速功能相关的每一进程的运行状态信息包括:

预设时间段内每一进程的断开次数,连接次数和每一次断开时间点信息,每一进程最后的运行状态。

由上述技术方案可知,本发明的加速实现浏览器渲染的方法及浏览器,通过在监测到显卡开启GPU硬件加速功能之后,将与GPU硬件加速相关的进程的运行状态信息发送服务器,以使服务器确定是否关闭当前设备中显卡的GPU硬件加速功能,由此,可较好避免因硬件加速导致出现浏览器蓝屏或崩溃的现象,提高了计算机的运行效率,提升用户体验。

附图说明

图1为本发明一实施例提供的加速实现浏览器渲染的方法的流程示意图;

图2为本发明另一实施例提供的加速实现浏览器渲染的方法的流程示意图;

图3为本发明一实施例提供的浏览器的结构示意图。

具体实施方式

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

目前,现有的浏览器渲染页面的硬件加速选项开启后,浏览器将所有预设的网页元素都会自动发送给GPU进行渲染,在这一过程中并没有考虑安装浏览器的硬件配置是否完全支持以上预设的网页元素加速,所以导致浏览器运行不稳定,崩溃的概率非常高。为此,如何保证浏览器的稳定运行且确定是否适时关闭显卡的GPU硬件加速功能成 为当前亟需解决的问题。

此外,现有设备中显卡信息比较混乱,且部分设备中的显卡具有GPU硬件加速功能,部分设备中的显卡不具有GPU硬件加速功能,而本发明实施例中提及的硬件加速功能均是针对显卡支持GPU硬件加速的。

图1示出了本发明一实施例提供的加速实现浏览器渲染的方法的流程示意图,应说明的该方法适用于安装有该浏览器的设备的显卡具有GPU硬件加速功能。如图1所示,本实施例的加速实现浏览器渲染的方法包括如下步骤:

101、监测所述显卡是否开启GPU硬件加速功能,若开启,则获取预设时间段内与所述GPU硬件加速功能相关的每一进程的运行状态信息。

举例来说,本实施例中的与GPU硬件加速功能相关的进程可包括:gpu进程、插件进程和渲染进程中的一种或多种。插件进程可包括:flash进程、CSS进程。

另外,预设时间段内与所述GPU硬件加速功能相关的每一进程的运行状态信息可包括:预设时间段内每一进程的断开次数,连接次数和每一次断开时间点信息,每一进程最后的运行状态等。

102、将获取的与所述GPU硬件加速功能相关的每一进程的运行状态信息发送云服务器,以使所述云服务器根据与所述GPU硬件加速功能相关的每一进程的运行状态信息确定是否关闭所述GPU硬件加速功能。

通常,云服务器中汇总有多个设备的浏览器已实现GPU硬件加速的相关进程的运行状态信息。进而,云服务器可根据汇总的各设备的信息和当前设备浏览器发送的与GPU硬件加速相关的进程的运行状态信息进行比较,在设备信息基本相同的条件下,确定是否关闭当前设备中显卡的GPU硬件加速功能。

另外,在另一可能的实现方式中,云服务器预先汇总有多个设备 的浏览器已实现GPU硬件加速的相关进程的运行状态信息的权重值。进而,云服务器在接收当前设备的浏览器发送的与GPU硬件加速相关的进程的运行状态信息后,获取当前设备的与GPU硬件加速相关进程的权重值;进而云服务器将当前设备对应的权重值与已经汇总的实现GPU硬件加速的各设备对应的权重值进行比较。在设备信息相同的情况下,根据权重值的大小进而确定是否关闭当前设备中显卡的GPU硬件加速功能。

举例来说,可选地,在一种实现场景中,上述图1所示的方法还可包括下述的图中未示出的步骤103:

103、在云服务器确定关闭所述GPU硬件加速功能时,接收云服务器发送的关闭指令,根据所述关闭指令关闭所述显卡的GPU硬件加速功能。

由此,可减缓浏览器页面的渲染,使得浏览器加载页面缓慢,但可以保证浏览器不出现蓝屏或崩溃的现象,保证浏览器的稳定性。

另外,可选地,在另一种实现场景中,上述图1所示的方法还可包括下述的图中未示出的步骤A103至步骤A106:

A103、在所述云服务器确定不关闭所述GPU硬件加速功能时,接收所述云服务器发送的获取所述设备中显卡信息的请求;

A104、根据所述请求,将所述设备中显卡信息发送所述云服务器,以使所述云服务器根据该显卡信息确定所述设备的硬件加速列表。

需要说明的是,云服务器中针对当前种类较多的显卡,可实时动态更新显卡信息对应的硬件加速列表。

A105、接收所述云服务器发送的硬件加速列表,所述硬件加速列表中对应有所述显卡支持进行GPU硬件加速的网页元素类型。

该处的网页元素类型都是与当前显卡相匹配的类型,即与设备的硬件信息动态匹配。

A106、根据所述网页元素类型确定待关闭的第一进程,所述待关 闭的第一进程为与所述GPU硬件加速功能相关的所有进程中的与所述网页元素类型无关的进程;关闭所述待关闭的第一进程。

本实施例的方法,通过在监测到显卡开启GPU硬件加速功能之后,将与GPU硬件加速相关的进程的运行状态信息发送服务器,以使服务器确定是否关闭当前设备中显卡的GPU硬件加速功能,由此,可较好避免因硬件加速导致出现浏览器蓝屏或崩溃的现象,提高了计算机的运行效率,提升用户体验。

图2示出了本发明一实施例提供的加速实现浏览器渲染的方法的流程示意图,应说明的该方法适用于安装有该浏览器的设备的显卡具有GPU硬件加速功能。如图2所示,本实施例的加速实现浏览器渲染的方法包括如下步骤:

201、监测所述显卡是否开启GPU硬件加速功能,若开启,则获取预设时间段内与所述GPU硬件加速功能相关的每一进程的运行状态信息。

举例来说,本实施例中的与GPU硬件加速功能相关的进程可包括:gpu进程、插件进程和渲染进程中的一种或多种。例如,插件进程可包括:flash进程、CSS进程。

另外,预设时间段内与所述GPU硬件加速功能相关的每一进程的运行状态信息可包括:预设时间段内每一进程的断开次数,连接次数和每一次断开时间点信息,每一进程最后的运行状态等。

202、将获取的与所述GPU硬件加速功能相关的每一进程的运行状态信息发送云服务器,以使所述云服务器根据与所述GPU硬件加速功能相关的每一进程的运行状态信息确定是否关闭所述GPU硬件加速功能。

203、在所述云服务器确定不关闭所述GPU硬件加速功能时,接收所述云服务器发送的关键进程的信息表,所述关键进程不包含所述GPU硬件加速功能相关的每一进程;

204、根据所述关键进程的信息表,获取预设时间段内所述信息表中的关键进程的运行状态信息;

205、将获取的所有关键进程的运行状态信息发送所述云服务器,以使所述云服务器根据所述关键进程的运行状态信息和与所述GPU硬件加速功能相关的每一进程的运行状态信息确定是否关闭所述GPU硬件加速功能。

当然,在一种具体的实现方式中,上述图2所示的方法还可包括下述的图中未示出的步骤206:

206、在云服务器确定关闭所述GPU硬件加速功能时,接收云服务器发送的关闭指令,根据所述关闭指令关闭所述显卡的GPU硬件加速功能。

在关闭当前设备的线卡的GPU硬件加速功能后,可减缓浏览器页面的渲染,使得浏览器加载页面缓慢,但可以保证浏览器不出现蓝屏或崩溃的现象,保证浏览器的稳定性。

另外,在云服务器不关闭GPU硬件加速功能,也会向当前设备的执行上述步骤的浏览器发送相关指令,以使浏览器根据云服务器发送的相关指令执行相应步骤。

本实施例的方法,可较好避免因硬件加速导致出现浏览器蓝屏或崩溃的现象,提高了计算机的运行效率,提升用户体验。

图3示出了本发明一实施例提供的浏览器的结构示意图,如图3所示,本实施例的浏览器所属的设备的显卡具有GPU硬件加速功能,具体地,如图3所示,本实施例的浏览器可包括:监测单元31、获取单元32、发送单元33;

其中,监测单元31用于监测所述显卡是否开启GPU硬件加速功能;

获取单元32用于在监测单元31监测到所述显卡开启GPU硬件加速功能之后,获取预设时间段内与所述GPU硬件加速功能相关的每一 进程的运行状态信息;

发送单元33用于将获取的与所述GPU硬件加速功能相关的每一进程的运行状态信息发送云服务器,以使所述云服务器根据与所述GPU硬件加速功能相关的每一进程的运行状态信息确定是否关闭所述GPU硬件加速功能。

举例来说,本实施例的与所述GPU硬件加速功能相关的进程可包括:gpu进程、插件进程和渲染进程中的一种或多种。

前述的获取单元32获取预设时间段内与所述GPU硬件加速功能相关的每一进程的运行状态信息可具体为:获取预设时间段内每一进程的断开次数,连接次数和每一次断开时间点信息,每一进程最后的运行状态。

可选地,在一种实现场景中,若云服务器确定不关闭所述GPU硬件加速功能时,则上述图3所示的浏览器还可包括图中未示出的接收单元34;该接收单元34用于接收所述云服务器发送的关键进程的信息表,所属关键进程不包含所述GPU硬件加速功能相关的每一进程;

所述获取单元32还用于根据接收单元接收的所述关键进程的信息表,获取预设时间段内所述信息表中的关键进程的运行状态信息;

所述发送单元33还用于将所述获取单元获取的所有关键进程的运行状态信息发送所述云服务器,以使所述云服务器根据所述关键进程的运行状态信息和与所述GPU硬件加速功能相关的每一进程的运行状态信息确定是否关闭所述GPU硬件加速功能。

可选地,在另一种实现场景中,若云服务器确定不关闭所述GPU硬件加速功能时,上述的接收单元34可用于接收所述云服务器发送的获取所述设备中显卡信息的请求;

所述发送单元33还用于根据所述接收单元接收的请求,将所述设备中显卡信息发送所述云服务器,以使所述云服务器根据所述显卡信息确定所述设备的硬件加速列表;

所述接收单元34还用于接收所述云服务器发送的硬件加速列表, 所述硬件加速列表中对应有所述显卡支持进行GPU硬件加速的网页元素类型;

此时,浏览器还可包括图中未示出的确定单元35和关闭单元36,该确定单元35用于根据所述接收单元34接收的所述硬件加速列表中的网页元素类型确定待关闭的第一进程,所述待关闭的第一进程为与所述GPU硬件加速功能相关的所有进程中的与所述网页元素类型无关的进程;关闭单元36可用于关闭所述待关闭的第一进程。

本实施例的浏览器可执行前述图1和图2所示的方法,详见上述描述,本实施例不对其进行详述。

本实施例中,云服务器可获取多个UE的显卡开启GPU硬件加速时各相关进程的运行参数,如gpu进程,flash进程,渲染进程意外断开连接的次数等,进而根据策略确定是否需要通知浏览器关闭当前显卡的GPU硬件加速功能,由此,可较好的保证浏览器的运行稳定性,避免因硬件加速导致出现浏览器蓝屏或崩溃的现象,提高了计算机的运行效率,提升用户体验。

在此处所提供的所明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明实施例中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中,每个权利要求本身都作为本发明的单独实施例。

以上所描述的装置实施例仅仅是示意性的其中所述作为分离部 件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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