一种浏览器中跨进程渲染方法和装置制造方法及图纸

技术编号:11071429 阅读:69 留言:0更新日期:2015-02-25 10:59
本发明专利技术实施例公开了一种浏览器中跨进程渲染方法,所述跨进程渲染方法包括:应用进程向全局策略对象发送渲染策略请求;所述全局策略对象根据当前所有渲染进程的运行状态信息,向所述应用进程返回渲染策略信息;所述应用进程根据所述渲染策略信息请求目标渲染进程为其建立渲染引擎,并与所述目标渲染进程建立会话连接,通过所述渲染引擎进行画面渲染。本发明专利技术实施例还公开了一种跨进程渲染装置。采用本发明专利技术,可实现渲染进程的负载均衡。

【技术实现步骤摘要】

本专利技术涉及互联网
,尤其涉及一种浏览器中跨进程渲染方法和装置
技术介绍
随着互联网技术的飞速发展,许多基于浏览器内核开发的应用(即webapp,一般可以指基于web网页技术的Application第三方应用)由于其自身开发成本低、无需安装、对各种移动设备以及平台的适配成本低廉等优势已经备受用户和app提供商的青睐,例如基于WebKit、Gecko以及Trident等浏览器引擎开发的webapp。以WebKit内核的浏览器为例,当前许多WebKit内核的浏览器都会采用跨进程渲染方案,即把渲染引擎放在单独的渲染进程里运行,通过进程间通讯实现网页、webapp等内容的展示与交互。但是随着webapp的广泛使用,用户设备经常需要为许多webapp渲染内容,这时若创建太多的渲染进程,电脑性能会降低,因此需要限定创建渲染进程的数量;而若采用多个WebApp重复使用同一渲染进程,则又会存在某个渲染进程存在过多的渲染引擎,导致该进程内存暴涨且响应速度变慢的问题,这些都会导致用户使用体验受到很大影响。
技术实现思路
本专利技术实施例所要解决的技术问题在于,提供一种浏览器中跨进程渲染方法和装置,可实现浏览器中渲染进程的负载均衡。为了解决上述技术问题,本专利技术实施例提供了一种浏览器中跨进程渲染方法,所述跨进程渲染方法包括:应用进程向全局策略对象发送渲染策略请求;所述全局策略对象根据当前所有渲染进程的运行状态信息,向所述应用进程返回渲染策略信息;所述应用进程根据所述渲染策略信息请求目标渲染进程为其建立渲染引擎,并与所述目标渲染进程建立会话连接,通过所述渲染引擎进行画面渲染。相应地,本专利技术实施例还提供了一种跨进程渲染装置,应用于浏览器中,其特征在于,所述跨进程渲染装置包括全局策略对象、至少一个应用进程以及至少一个渲染进程,其中:所述全局策略对象用于收集所有渲染进程的运行状态信息,并当获取到所述应用进程发送的渲染策略请求后,根据当前所有渲染进程的运行状态信息向所述应用进程返回渲染策略信息;所述应用进程用于向所述全局策略对象发送渲染策略请求,获取所述全局策略对象返回的渲染策略信息,根据所述渲染策略信息请求目标渲染进程为其建立渲染引擎并与所述目标渲染进程建立会话连接;所述渲染进程用于根据所述应用进程的请求为其建立渲染引擎,并与所述目标渲染进程建立会话连接,通过所述渲染引擎为所述应用进程进行画面渲染。本专利技术实施例通过全局策略对象根据浏览器中中正在运行的渲染进程的运行状态信息为应用进程确定最优的渲染引擎创建位置,使得运行的渲染进程尽可能少并且每个渲染进程内存占用尽可能少或内部渲染引擎尽可能少,从而可以实现渲染进程的负载均衡,加快每个渲染进程的响应速度,提高系统资源利用率与用户体验。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种跨进程渲染装置的结构示意图;图2是本专利技术实施例提供的跨进程渲染装置采用的进程会话模型;图3是本专利技术实施例提供的一种跨进程渲染方法的流程示意图;图4是本专利技术另一实施例提供的一种跨进程渲染方法的流程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1是本专利技术实施例提供的一种跨进程渲染装置的结构示意图,本专利技术实施例中提及的跨进程渲染装置可以实现在WebKit、Gecko以及Trident等浏览器中,如图所示跨进程渲染装置可以至少包括全局策略对象10、至少一个应用进程20以及至少一个渲染进程30,其中:所述全局策略对象10用于收集浏览器中所有正在运行的渲染进程30的运行状态信息,并当获取到所述应用进程20发送的渲染策略请求后,根据当前所有渲染进程的运行状态信息向所述应用进程20返回渲染策略信息。具体实现中,所述全局策略对象10可以为预先在ROT(running object table,系统运行对象表)中创建得到的全局对象,预先设定名称从而使得系统中的所有进程均可以访问该全局策略对象。全局策略对象可以实时或以一定时间间隔收集浏览器中中所有渲染进程的运行状态信息,所述渲染进程的运行状态信息包括对应渲染进程当前的内存占用状况和/或渲染引擎数量。在获取到应用进程20发送的渲染策略请求后,全局策略对象10可以根据当前所有渲染进程的运行状态信息为应用进程20确定渲染策略,目的是将每个需要的渲染引擎尽可能平均分配任务到不同的渲染进程,使各个渲染进程均衡的平摊渲染引擎和系统资源,因此渲染策略可以包括为应用进程20选择最优的渲染进程或通知应用进程20可以新创建一个渲染进程为其进行画面渲染,例如当前只有一个正在运行的渲染进程并且该渲染进程的内存占用超过一定预设门限,或该渲染进程的渲染引擎数量超过预设阈值,则可以通过渲染策略信息通知应用进程20可以新创建一个渲染进程为其进行画面渲染,又如当前有三个正在运行的渲染进程并且其中的一个渲染进程占用的内存较低、或该渲染进程内的渲染引擎数量未达到预设阈值,则可以选择该渲染进程作为目标渲染进程,通过渲染策略信息通知应用进程可以选择请求该目标渲染进程为其建立渲染引擎。进一步的,本专利技术实施例中跨进程渲染装置中的进程可以采用共享内存模型,即每个进程拥有一个共享内存区,这个共享内存区由一个全局标志符标志,可以称为共享内存区标识,当应用进程20需要跟目标渲染进程通讯时,需打开目标渲染进程的共享内存区,然后往打开的共享内存区发送数据包从而进行信令传输和建立会话的过程。每当新创建一个渲染进程30时可以将创建得到的渲染进程的共享内存区标识写入全局策略对象的进程信息表中,由此,全局策略对象10的进程信息表中可以记录有当前正在运行的所有渲染进程30的共享内存区标识,进而可以在向应用进程发送的渲染策略信息中携带目标渲染进程的共享内存区标识。所述应用进程20用于向所述全局策略对象10发送渲染策略请求,获取所述全局策略对象10返回的本文档来自技高网...

【技术保护点】
一种浏览器中跨进程渲染方法,其特征在于,所述跨进程渲染方法包括:应用进程向全局策略对象发送渲染策略请求;所述全局策略对象根据当前所有渲染进程的运行状态信息,向所述应用进程返回渲染策略信息;所述应用进程根据所述渲染策略信息请求目标渲染进程为其建立渲染引擎,并与所述目标渲染进程建立会话连接,通过所述渲染引擎进行画面渲染。

【技术特征摘要】
1.一种浏览器中跨进程渲染方法,其特征在于,所述跨进程渲染方法包括:
应用进程向全局策略对象发送渲染策略请求;
所述全局策略对象根据当前所有渲染进程的运行状态信息,向所述应用进
程返回渲染策略信息;
所述应用进程根据所述渲染策略信息请求目标渲染进程为其建立渲染引
擎,并与所述目标渲染进程建立会话连接,通过所述渲染引擎进行画面渲染。
2.如权利要求1所述的浏览器中跨进程渲染方法,其特征在于,所述渲染
策略信息包括所述目标渲染进程的共享内存区标识;
所述应用进程根据所述渲染策略信息请求目标渲染进程为其建立渲染引
擎,并与所述目标渲染进程建立会话连接包括:
所述应用进程通过所述目标渲染进程的共享内存区标识请求目标渲染进程
为其建立渲染引擎,并与目标渲染进程建立会话连接。
3.如权利要求1所述的浏览器中跨进程渲染方法,其特征在于,所述应用
进程根据所述渲染策略信息请求目标渲染进程为其建立渲染引擎,并与目标渲
染进程建立会话连接包括:
所述应用进程根据所述渲染策略信息创建所述目标渲染进程;
所述应用进程请求所述目标渲染进程为其建立渲染引擎,并与所述目标渲
染进程建立会话连接。
4.如权利要求1所述的浏览器中跨进程渲染方法,其特征在于,所述应用
进程与目标渲染进程建立会话连接包括:
所述应用进程通知目标渲染进程为所述渲染引擎建立第一进程会话;
所述应用进程建立与所述第一进程会话对等的第二进程会话;
所述应用进程与所述目标渲染进程通过所述第一进程会话和第二进程会话
进行通信会话。
5.如权利要求1所述的浏览器中跨进程渲染方法,其特征在于,所述渲染
进程的运行状态信息包括该渲染进程当前的内存占用状况和/或渲染引擎数量。
6.如权利要求1所述的浏览器中跨进程渲染方法,其特征在于,所述跨进
程渲染方法还包括:
所述渲染进程以一定时间间隔向所述全局策略对象上报自身的运行状态信
息。
...

【专利技术属性】
技术研发人员:常平黄奎
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1