浏览器冷启动的实现方法及装置制造方法
【专利摘要】本发明实施例公开了一种浏览器冷启动的实现方法及装置。所述方法包括:根据获取到的浏览器的启动指示,从浏览器的数据文件在磁盘中的存储位置开始,顺序读取数据文件,并将读取到的数据文件保存在内存中;根据浏览器启动过程对所述数据文件的需求,从所述内存中查找并读取对应的数据文件。本实施例提供的技术方案,能够减少随机读取磁盘的寻道操作,避免缺页现象的发生,优化冷启动浏览器时的界面展现效果。
【专利说明】浏览器冷启动的实现方法及装置
【技术领域】
[0001]本发明实施例涉及计算机【技术领域】,尤其涉及一种浏览器冷启动的实现方法及装置。
【背景技术】
[0002]目前,在终端启动浏览器的方式可分为冷启动方式和热启动方式。所谓浏览器冷启动,即为在开启终端设备后首次启动浏览器;所谓浏览器热启动,即为在终端设备上启动并关闭浏览器后,再次启动浏览器。
[0003]在现有技术中,浏览器冷启动的过程,主要是通过磁盘I/O读写的方式读取浏览器运行的各种数据文件并打开,以支持浏览器的运行功能。
[0004]但是,现有浏览器冷启动过程存在启动过程慢,耗费资源多,用户在看到浏览器窗口前需要较长时间等待的缺陷。
【发明内容】
[0005]本发明实施例提供一种浏览器冷启动的实现方法及装置,以加快浏览器启动速度,减少资源浪费,优化冷启动浏览器时的界面展现效果。
[0006]第一方面,本发明实施例提供了一种浏览器冷启动的实现方法,该方法包括:
[0007]根据获取到的浏览器的启动指示,从浏览器的数据文件在磁盘中的存储位置开始,顺序读取数据文件,并将读取到的数据文件保存在内存中;
[0008]根据浏览器启动过程对所述数据文件的需求,从所述内存中查找并读取对应的数据文件。
[0009]第二方面,本发明实施例还提供了一种浏览器冷启动的实现装置,该装置包括:
[0010]磁盘读取单元,用于根据获取到的浏览器的启动指示,从浏览器的数据文件在磁盘中的存储位置开始,顺序读取数据文件,并将读取到的数据文件保存在内存中;
[0011]内存读取单元,用于根据浏览器启动过程对所述数据文件的需求,从所述内存中查找并读取对应的数据文件。
[0012]本发明实施例通过对磁盘的连续读取,预加载数据文件到内存中,可以减少随机读取磁盘的寻道操作,从而能够减少发生缺页的现象,节省加载数据文件的时间,也减少了对磁盘读取资源的占用,能改善浏览器冷启动速度,改善界面加载效果。
【专利附图】
【附图说明】
[0013]图1是本发明实施例一提供一种浏览器冷启动的实现方法的流程示意图;
[0014]图2是本发明实施例二提供一种浏览器冷启动的实现方法的流程示意图;
[0015]图3是本发明实施例三提供的一种浏览器冷启动的实现装置的结构示意图。
【具体实施方式】
[0016]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0017]实施例一
[0018]图1是本发明实施例一提供一种浏览器冷启动的实现方法的流程示意图,该方法可以由浏览器冷启动的实现装置来执行,所述装置由软件实现,可以作为浏览器程序的子程序,在浏览器主程序的调用下对冷启动过程进行控制。在此情况下,所述子程序作为用于驱动浏览器的程序,被内嵌在浏览器程序中,即本实施例中的浏览器冷启动的实现方法由浏览器执行。当然,所述装置也可以为独立于浏览器程序的辅助程序,例如作为操作系统中的程序,监测浏览器的冷启动进程,从而对冷启动过程进行控制。在此情况下,所述辅助程序作为用于驱动浏览器的程序,被置备在浏览器程序之外,即本实施例中的浏览器冷启动的实现方法由独立于浏览器之外的软件产品执行。参见图1,该浏览器冷启动的实现方法具体包括如下操作:
[0019]110、根据获取到的浏览器的启动指示,从浏览器的数据文件在磁盘中的存储位置开始,顺序读取数据文件,并将读取到的数据文件保存在内存中。
[0020]其中,浏览器的启动指示即为对浏览器进行冷启动的指示,该操作指示例如可以是对终端界面显示的浏览器图标的双击操作,也可以是其他调用或者打开浏览器的指示。在本实施例中,浏览器的数据文件指的是用于启动浏览器所需的数据文件。通常,浏览器的数据文件包括用于生成浏览器内核(即渲染引擎)的数据文件、用于构建浏览器框架的数据文件、用于设置浏览器界面显示属性的数据文件、用于在浏览器界面中插入扩展控件的数据文件、对应于在浏览器界面中导航页的数据文件,等等。例如,浏览器的数据文件可包括:Framework, dll、Browserlogic.dll、Firstskin.dll、libxml2.dll、libeay32.dll、objectfactory.dll 和 bdcommon.dll 等文件。
[0021]在本实施例中,浏览器所在终端设备的磁盘上预先存储有浏览器的数据文件。其中,磁盘即为终端的硬盘存储器;所述数据文件的数量可以是一个或多个,并且数据文件可被切分为连续的多个分片数据,分散存储在磁盘的不同磁道位置上。
[0022]在获取到浏览器的启动指示之后,可从所述起始存储位置开始,按照存储顺序依次读取各个分片数据,并将读取到的数据文件保存在内存中,直到终止存储位置为止。
[0023]举例来说,在本实施例中可以根据数据存储速度来设定每次读取数据的容量大小,当然也可以是预先设定的某个固定值,例如为50MB ;对读取到的数据文件的保存过程可采用缓存机制。其中,数据存储速度指的是在内存中存储浏览器的数据文件的速度。此处将读取到的数据文件进行保存,是为了方便后续热启动浏览器时,可以直接读取内存中所保存的浏览器的启动文件,而不用再次执行顺序读取磁盘的操作。
[0024]在现有技术中,在接收到浏览器的启动指示后,会以间断的方式读取磁盘上存储的浏览器的数据文件,并将其保存至内存。其中,所述读取过程具体是:如果在启动浏览器时读取内存数据发现存在缺页(即内存中未存储有当前启动浏览器所需的某个数据文件或某个数据文件中的部分数据)现象,则会通过磁盘寻道操作对磁盘进行读取操作,以获取缺页数据,并将其加载到内存中进行数据处理。
[0025]因此,在内存读取数据时频繁发生的缺页现象将触发多次的磁盘读取,而每次的磁盘读取需要进行磁盘内寻道操作,这样,会使得浏览器的数据文件的加载过程并不是连续的,而是随机跳动的,后续对缺页数据的寻道操作,会耗费大量的时间和资源,造成浪费。而在本实施例中,以顺序读取的方式,将浏览器的数据文件预先连续地保存至内存中,以供后续使用,可以减少缺页现象,因此也就避免了后续通过磁盘寻道来读取缺页数据的操作,节省了时间与资源。
[0026]举例来说,从磁盘进行数据的读取操作可以在获取启动指示之后立即执行,也可以在从内存中读取数据时发生第一次缺页的情况下被触发执行。
[0027]120、根据浏览器启动过程对所述数据文件的需求,从内存中查找并读取对应的数据文件。
[0028]在将浏览器的数据文件保存在内存中之后,需要根据内存中所存储的这些数据文件来启动浏览器。
[0029]本发明实施例中,优选是将浏览器启动过程划分成至少两个阶段,按照每个阶段对数据文件的需求,分阶段读取对应的数据文件,并在读取数据文件后立即执行以呈现给用户。
[0030]在现有技术中,采用“在将实现浏览器所需业务功能的所有数据文件均读取后,再打开浏览器界面,并运行相关功能”的方案,会使得将浏览器渲染至终端界面的过程耗时较长。例如,为增加用户黏性,通常会将大量的第三方开发者提供的业务功能耦合在浏览器的启动过程中,如果要待浏览器的全部数据文件加载完毕之后,才运行启动阶段,将浏览器呈现给用户,则会导致浏览器的展示速度下降,需要用户等待较长时间才可看到浏览器框架。
[0031]本发明实施例优选在根据内存中所存储的数据文件来启动浏览器时,按启动阶段的需求从内存中查找并读取对应的数据文件。其中,所述需求可以是基于启动阶段中各数据文件的必要的执行顺序、重要程度、功能分类和/或容量大小等因素来确定。其中,所述容量大小是对数据文件存储量的计量大小,例如为1K、2M、或2G等。
[0032]举例而言,如果分两个阶段按需加载浏览器的情况,则在第一启动阶段根据需求所查找的数据文件可至少包括加载浏览器框架和导航页所需的全部数据文件(即为启动浏览器所必需的数据文件),例如可以包括内存中存储的用于生成浏览器内核的数据文件、用于构建浏览器框架的数据文件和对应于在浏览器界面中导航页的数据文件。优先运行这些数据文件来实现对浏览器的初步启动。在第二启动阶段根据需求所查找的数据文件包括对第一启动阶段构建的浏览器进行优化所需的部分或全部数据文件(即为启动浏览器非必需的数据文件),例如可具体包括用于设置浏览器界面显示属性的数据文件以及用于在浏览器界面中插入扩展控件的数据文件和/或其他数据文件。第二启动阶段的功能需求可以是:rich edit延迟加载,静态链接crt、dll合并,object factory信息字节重排,精简资源,皮肤包分类,zip资源按需解压缩,图片压缩,去沙箱,菜单精简中的任意种组合。运行在第二启动阶段根据需求得到的数据文件可对之前初步启动后的浏览器进行优化。
[0033]本实施例提供的技术方案,通过对磁盘的连续读取,预加载数据文件到内存中,可以减少随机读取磁盘的寻道操作,从而能够减少发生缺页的现象,节省加载数据文件的时间,也减少了对磁盘读取资源的占用,能改善浏览器冷启动速度,改善界面加载效果。
[0034]实施例二
[0035]图2是本发明实施例二提供一种浏览器冷启动的实现方法的流程示意图。本实施例在上述实施例一的基础上,提供一种优选实施例。本实施例参见图2,该浏览器冷启动的实现方法包括如下操作:
[0036]210、根据获取到的浏览器的启动指示,遍历浏览器的各启动阶段,从当前遍历到的启动阶段的数据文件在磁盘中的存储位置开始,顺序读取当前遍历到的启动阶段的数据文件,将读取到的数据文件保存在内存中;
[0037]220、基于各启动阶段的顺序,根据浏览器启动过程对数据文件的需求,从内存中查找并读取当前启动阶段的数据文件,根据所读取的数据文件运行当前启动阶段;
[0038]230、在根据所读取的数据文件运行当前启动阶段之后,将下一个启动阶段更新为当前启动阶段;返回执行操作220,直到遍历完毕所有的启动阶段。
[0039]上述操作210对应于实施例一中的操作110,上述操作220和操作230对应于实施例一中的操作120。
[0040]其中,浏览器的数据文件包括至少一个启动阶段的数据文件。在本实施例中,可预先按照用户需求以及各个数据文件之间必要的先后顺序,将浏览器的启动阶段划分为多个启动阶段。用户需求可以是优先呈现浏览器框架。优选的,浏览器的启动阶段至少分为框架启动阶段和页面启动阶段。
[0041]所谓框架启动阶段指的是浏览器框架的构建与呈现阶段;所谓页面启动阶段指的是在所呈现的浏览器框架中加载导航页面的阶段。所谓浏览器框架指的是浏览器中除插件、导航页面和应用附件之外的部分。在浏览器还包括各种插件和应用附件的情况下,还可进一步增加浏览器的优化启动阶段,该启动阶段用于为已呈现的浏览器增加插件功能和应用功能。其中,应用附件指的是在浏览器中添加的用于实现特定业务的扩展项,例如位于浏览器界面中地址栏下面的截图、游戏、翻译、网银等应用。框架启动阶段优先于页面启动阶段,页面启动阶段优先于优化启动阶段。
[0042]所谓遍历浏览器的各启动阶段,是指依次对所有启动阶段中的每个启动阶段均做一次且仅做一次访问。当前被访问到的启动阶段即为当前遍历到的启动阶段。
[0043]在本实施例中,可预先将所有启动阶段的数据文件存储在磁盘的对应磁道上,并记录各启动阶段的数据文件在磁盘上的存放位置。在获取到浏览器的启动指示之后,遍历浏览器的各启动阶段,根据预先存储的记录信息,确定当前遍历到的启动阶段的数据文件在磁盘中的起始位置,然后从该起始位置开始顺序读取该启动阶段的数据文件。
[0044]需要说明的是,可以创建一个数据文件读取线程,来执行对各启动阶段的数据文件的读取操作;也可创建多个数据文件读取线程,以并行的方式同时从磁盘读取所有启动阶段的数据文件。例如,可以为各启动阶段分别创建一个数据文件读取线程,然后同时启动这些线程,指示每个线程执行对其相应启动阶段的数据文件的读取操作。
[0045]优选的,遍历浏览器的各启动阶段,从当前遍历到的启动阶段的数据文件在磁盘中的存储位置开始,顺序读取当前遍历到的启动阶段的数据文件,可具体包括:通过启动所创建的至少一个数据文件读取线程,以并行处理的方式从浏览器的各启动阶段的数据文件在磁盘中的存储位置开始,顺序读取相应启动阶段的数据文件。
[0046]进一步的,可以是待遍历完毕浏览器的所有启动阶段,并将读取到的对应于所有启动阶段的数据文件保存至内存之后,再根据浏览器启动过程对浏览器的数据文件的需求,从内存中查找并读取对应的数据文件。为提高浏览器的加载速度,在最先要运行的启动阶段的数据文件已被全部保存在内存当中时,可立即根据该数据文件运行其相应的启动过程;之后,在下一个要运行的启动阶段的数据文件已被全部保存在内存当中时,可立即根据该数据文件运行其相应的启动过程;依次类推。
[0047]本实施例在根据浏览器启动过程对数据文件的需求,从内存中查找并读取对应的数据文件的基础上,进一步根据所需求的数据文件分阶段来启动浏览器。例如可优选启动比较重要的浏览器框架,而后才启动对浏览器中导航页面的加载等。这样,可以使得在浏览器并没完全启动完毕之前,便可提供浏览器框架给用户,加快浏览器在终端界面上的显示过程。本实施例提供的技术方案,将浏览器的数据文件划分为至少一个启动阶段的数据文件,通过对磁盘的连续读取,预加载各个启动阶段的数据文件到内存中,可以减少随机读取磁盘的寻道操作,还能够减少发生缺页的现象,从而节省加载数据文件的时间;并且,将浏览器启动划分为多个阶段,顺序启动,使得用户不必等待全部数据文件加载完成即可看到打开的浏览器框架,改善用户体验。
[0048]实施例三
[0049]图3是本发明实施例三提供的一种浏览器冷启动的实现装置的结构示意图。参见图3,该实现装置的具体结构如下:
[0050]磁盘读取单元310,用于根据获取到的浏览器的启动指示,从浏览器的数据文件在磁盘中的存储位置开始,顺序读取数据文件,并将读取到的数据文件保存在内存中;
[0051]内存读取单元320,用于根据浏览器启动过程对所述数据文件的需求,从所述内存中查找并读取对应的数据文件。
[0052]进一步的,所述浏览器的数据文件包括至少一个启动阶段的数据文件;
[0053]所述磁盘读取单元310,包括:
[0054]文件查找子单元3101,用于根据获取到的浏览器的启动指示,遍历浏览器的各启动阶段,从当前遍历到的启动阶段的数据文件在磁盘中的存储位置开始,顺序读取当前遍历到的启动阶段的数据文件;
[0055]文件保存子单元3102,用于将读取到的数据文件保存在内存中;
[0056]则所述内存读取单元320,具体用于:
[0057]基于各启动阶段的顺序,根据浏览器启动过程对数据文件的需求,从所述内存中查找并读取当前启动阶段的数据文件,根据所读取的数据文件运行当前启动阶段;
[0058]在根据所读取的数据文件运行当前启动阶段之后,将下一个启动阶段更新为当前启动阶段,重复执行所述从所述内存中查找并读取当前启动阶段的数据文件,根据所读取的数据文件运行当前启动阶段。
[0059]进一步的,所述文件查找子单元3101,具体用于:
[0060]根据获取到的浏览器的启动指示,通过启动所创建的至少一个数据文件读取线程,以并行处理的方式从浏览器的各启动阶段的数据文件在磁盘中的存储位置开始,顺序读取相应启动阶段的数据文件。
[0061]进一步的,所述浏览器的启动阶段至少分为框架启动阶段和页面启动阶段。
[0062]上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
[0063]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
【权利要求】
1.一种浏览器冷启动的实现方法,其特征在于,包括: 根据获取到的浏览器的启动指示,从浏览器的数据文件在磁盘中的存储位置开始,顺序读取数据文件,并将读取到的数据文件保存在内存中; 根据浏览器启动过程对所述数据文件的需求,从所述内存中查找并读取对应的数据文件。
2.根据权利要求1所述的浏览器冷启动的实现方法,其特征在于,所述浏览器的数据文件包括至少一个启动阶段的数据文件; 从浏览器的数据文件在磁盘中的存储位置开始,顺序读取数据文件,包括: 遍历浏览器的各启动阶段,从当前遍历到的启动阶段的数据文件在磁盘中的存储位置开始,顺序读取当前遍历到的启动阶段的数据文件; 则根据浏览器启动过程对所述数据文件的需求,从所述内存中查找并读取对应的数据文件,包括: 基于各启动阶段的顺序,根据浏览器启动过程对数据文件的需求,从所述内存中查找并读取当前启动阶段的数据文件,根据所读取的数据文件运行当前启动阶段; 在根据所读取的数据文件运行当前启动阶段之后,将下一个启动阶段更新为当前启动阶段,重复执行所述从所述内存中查找并读取当前启动阶段的数据文件,根据所读取的数据文件运行当前启动阶段。
3.根据权利要求2所述的浏览器冷启动的实现方法,其特征在于,遍历浏览器的各启动阶段,从当前遍历到的启动阶段的数据文件在磁盘中的存储位置开始,顺序读取当前遍历到的启动阶段的数据文件,包括: 通过启动所创建的至少一个数据文件读取线程,以并行处理的方式从浏览器的各启动阶段的数据文件在磁盘中的存储位置开始,顺序读取相应启动阶段的数据文件。
4.根据权利要求2所述的浏览器冷启动的实现方法,其特征在于,所述浏览器的启动阶段至少分为框架启动阶段和页面启动阶段。
5.一种浏览器冷启动的实现装置,其特征在于,包括: 磁盘读取单元,用于根据获取到的浏览器的启动指示,从浏览器的数据文件在磁盘中的存储位置开始,顺序读取数据文件,并将读取到的数据文件保存在内存中; 内存读取单元,用于根据浏览器启动过程对所述数据文件的需求,从所述内存中查找并读取对应的数据文件。
6.根据权利要求5所述的浏览器冷启动的实现装置,其特征在于,所述浏览器的数据文件包括至少一个启动阶段的数据文件; 所述磁盘读取单元,包括: 文件查找子单元,用于根据获取到的浏览器的启动指示,遍历浏览器的各启动阶段,从当前遍历到的启动阶段的数据文件在磁盘中的存储位置开始,顺序读取当前遍历到的启动阶段的数据文件; 文件保存子单元,用于将读取到的数据文件保存在内存中; 则所述内存读取单元,具体用于: 基于各启动阶段的顺序,根据浏览器启动过程对数据文件的需求,从所述内存中查找并读取当前启动阶段的数据文件,根据所读取的数据文件运行当前启动阶段; 在根据所读取的数据文件运行当前启动阶段之后,将下一个启动阶段更新为当前启动阶段,重复执行所述从所述内存中查找并读取当前启动阶段的数据文件,根据所读取的数据文件运行当前启动阶段。
7.根据权利要求6所述的浏览器冷启动的实现装置,其特征在于,所述文件查找子单元,具体用于: 根据获取到的浏览器的启动指示,通过启动所创建的至少一个数据文件读取线程,以并行处理的方式从浏览器的各启动阶段的数据文件在磁盘中的存储位置开始,顺序读取相应启动阶段的数据文件。
8.根据权利要求6所述的浏览器冷启动的实现装置,其特征在于,所述浏览器的启动阶段至少分为框架启动阶段和页面启动阶段。
【文档编号】G06F9/445GK104199684SQ201410397839
【公开日】2014年12月10日 申请日期:2014年8月13日 优先权日:2014年8月13日
【发明者】钱毅 申请人:百度在线网络技术(北京)有限公司