[发明专利]一种快速加载资源的方法及装置在审
申请号: | 201611115565.X | 申请日: | 2016-12-07 |
公开(公告)号: | CN108170489A | 公开(公告)日: | 2018-06-15 |
发明(设计)人: | 张悦 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开一种快速加载资源的方法及装置,所述方法预先对预定的各资源进行解析,并将解析所得的各资源数据,以及每一资源数据与相对应资源的索引信息间的对应关系存储至第一存储区域,在此基础上,在进行资源加载时,通过获得待加载资源的索引信息,并以该索引信息为依据确定第一存储区域是否包含待加载资源对应的资源数据,在包含时直接读取该资源数据并将其写入至资源加载进程预分配的第二存储区域,即可实现资源加载。本发明方案,对于能够在第一存储区域命中的已完成解析的资源数据,直接将其拷贝至资源加载进程预分配的区域即可,避免了每次加载资源时进行大量资源文件的读取及解析,降低了资源加载成本、提升了资源加载速度。 1 | ||
搜索关键词: | 资源加载 资源数据 加载 存储区域 解析 索引信息 预分配 读取 关系存储 直接读取 资源文件 拷贝 写入 进程 | ||
获得待加载资源对应的索引信息;
依据所述待加载资源的索引信息,确定第一存储区域中是否包含所述待加载资源对应的资源数据;其中,所述第一存储区域中预先存储有对预定的各资源进行解析所得的各资源数据,以及每一资源数据与相对应资源的索引信息间的对应关系;
若第一存储区域中包含所述待加载资源对应的资源数据,则读取所述待加载资源对应的资源数据,并将读取的所述资源数据写入第二存储区域;所述第二存储区域为资源加载进程预分配的区域。
2.根据权利要求1所述的方法,其特征在于,还包括:若第一存储区域中不包含所述待加载资源对应的资源数据,则读取并解析所述待加载资源,并将解析后所得的资源数据写入所述第二存储区域。
3.根据权利要求2所述的方法,其特征在于,还包括:将解析待加载资源所得的资源数据,以及所述资源数据与所述待加载资源的索引信息间的对应关系,写入所述第一存储区域。
4.根据权利要求3所述的方法,其特征在于,还包括:当所述第一存储区域符合预定的数据淘汰条件时,确定所述第一存储区域中需淘汰的资源数据,并删除所述需淘汰的资源数据。
5.根据权利要求1所述的方法,其特征在于,还包括:在对所述第一存储区域进行数据访问之前,依据所述数据访问的访问类型,对所述第一存储区域的数据执行相应的加锁操作。
6.根据权利要求5所述的方法,其特征在于,所述依据所述数据访问的访问类型,对所述第一存储区域的数据执行相应的加锁操作包括:若所述访问类型为读取数据,向所述第一存储区域的数据加共享锁,以使得其他资源加载进程能够读取所述第一存储区域的数据;
若所述访问类型为修改数据,向所述第一存储区域的数据加排他锁,以使得其他资源加载进程不能访问所述第一存储区域的数据。
7.根据权利要求1所述的方法,其特征在于,所述获得待加载资源对应的索引信息,包括:利用预设算法,生成所述待加载资源对应的索引信息。
8.根据权利要求4所述的方法,其特征在于,所述第一存储区域中的资源数据按链表方式存储,所述每一资源数据及每一资源数据与索引信息间的对应关系存储在相应的链表结点中,则所述依据所述待加载资源的索引信息,确定第一存储区域中是否包含所述待加载资源对应的资源数据,包括:确定所述第一存储区域的资源链表中是否存在与所述待加载资源的索引信息相匹配的链表结点。
9.根据权利要求8所述的方法,其特征在于,所述读取所述待加载资源对应的资源数据,包括:读取所述相匹配的链表结点中的资源数据。
10.根据权利要求8所述的方法,其特征在于,还包括:将所述相匹配的链表结点从在所述资源链表所处的当前位置更新至所述资源链表的第一端。
11.根据权利要求10所述的方法,其特征在于,所述将解析待加载资源后所得的资源数据,以及所述资源数据与所述待加载资源的索引信息间的对应关系,写入所述第一存储区域,包括:在所述资源链表的第一端添加新的链表结点,并将解析待加载资源所得的资源数据,以及所述资源数据与所述待加载资源的索引信息间的对应关系,写入所述新的链表结点中。
12.根据权利要求11所述的方法,其特征在于,所述确定所述第一存储区域中需淘汰的资源数据,并删除所述需淘汰的资源数据,包括:按照淘汰最近最少使用的数据的淘汰方式,删除所述资源链表的第二端的链表结点。
13.一种快速加载资源的装置,其特征在于,所述装置包括:获取单元,用于获得待加载资源对应的索引信息;
确定单元,用于依据所述待加载资源对应的索引信息,确定第一存储区域中是否包含所述待加载资源对应的资源数据;其中,所述第一存储区域中预先存储有对预定的各资源进行解析所得的各资源数据,以及每一资源数据与相对应资源的索引信息间的对应关系;
第一写处理单元,用于在第一存储区域中包含所述待加载资源对应的资源数据时,读取所述待加载资源对应的资源数据,并将读取的所述资源数据写入第二存储区域,所述第二存储区域为资源加载进程预分配的区域。
14.根据权利要求13所述的装置,其特征在于,还包括:第二写处理单元,用于在第一存储区域中不包含所述待加载资源对应的资源数据时,读取并解析所述待加载资源,并将解析后所得的资源数据写入所述第二存储区域。
15.根据权利要求14所述的装置,其特征在于,还包括:第三写处理单元,用于将解析待加载资源后所得的资源数据,以及所述资源数据与所述待加载资源对应的索引信息间的对应关系,写入所述第一存储区域。
16.根据权利要求15所述的装置,其特征在于,还包括:删除单元,用于在所述第一存储区域符合预定的数据淘汰条件时,确定所述第一存储区域中需淘汰的资源数据,并删除所述需淘汰的资源数据。
17.根据权利要求13所述的装置,其特征在于,还包括:加锁单元,用于在对所述第一存储区域进行数据访问之前,依据所述数据访问的访问类型,对所述第一存储区域的数据执行相应的加锁操作。
18.根据权利要求17所述的装置,其特征在于,所述加锁单元,进一步用于:在所述访问类型为读取数据时,向所述第一存储区域的数据加上共享锁,以使得其他资源加载进程能够读取所述第一存储区域的数据;
在所述访问类型为修改数据时,向所述第一存储区域的数据加上排他锁,以使得其他资源加载进程不能访问所述第一存储区域的数据。
19.根据权利要求13所述的装置,其特征在于,所述第一存储区域中的资源数据按链表方式存储,所述每一资源数据及每一资源数据与索引信息间的对应关系存储在相应的链表结点中,则所述确定单元,进一步用于:确定所述第一存储区域的资源链表中是否存在与所述待加载资源的索引信息相匹配的链表结点。
20.根据权利要求19所述的装置,其特征在于,还包括:位置调整单元,用于将所述相匹配的链表结点从在所述资源链表所处的当前位置更新至所述资源链表的第一端。
21.根据权利要求20所述的装置,其特征在于,所述第三写处理单元,进一步用于:在所述资源链表的第一端添加新的链表结点,并将解析待加载资源所得的资源数据,以及所述资源数据与所述待加载资源的索引信息间的对应关系,写入所述新的链表结点中。
22.根据权利要求21所述的装置,其特征在于,所述删除单元该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201611115565.X/,转载请声明来源钻瓜专利网。
- 上一篇:一种升级插件的方法及装置
- 下一篇:一种IMA系统数据加载架构及加载方法