[发明专利]程序启动的方法和装置在审
申请号: | 201310001291.1 | 申请日: | 2013-01-04 |
公开(公告)号: | CN103914318A | 公开(公告)日: | 2014-07-09 |
发明(设计)人: | 朱文焕 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 罗振安 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 启动 方法 装置 | ||
技术领域
本发明涉及计算机领域,特别涉及一种程序启动的方法和装置。
背景技术
随着计算机的发展,程序种类越来越多,而在程序启动或者使用过程依赖于某些映像文件(EXE文件和DLL文件),在加载并使用这些映像文件的过程中,当访问的虚拟页面没有被映射到有效的物理页面时,发生页面错误(Page Fault);如果虚拟页面被映射到内存中其他状态的物理页面,需要将该页面加入到活动页面,发生软页面错误(Soft Fault);如果虚拟页面被映射到磁盘上的文件中,就需要从磁盘文件中读取,发生硬页面错误(Hard Fault),而由于Hard Fault是按需读取的,所对应的单次I/O大小比较小(Data Page16KB和Code Page32KB),而由于每次Hard Fault造成的I/O比较随机,可能造成磁头在磁盘上的跳跃,这些磁盘I/O将大大减慢程序的运行。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种程序启动的方法和装置。所述技术方案如下:
一种程序启动的方法,所述方法包括:
当接收到启动程序的指令时,获取所述程序对应的至少一个预取文件块信息,所述至少一个预取文件块信息由所述程序在历史启动和运行过程中发生的页面错误对应的文件块信息合并获得;
加载所述至少一个预取文件块信息对应的文件块;
加载所述程序的代码,以便启动所述应用程序。
当接收到启动程序的指令时,获取所述程序对应的至少一个预取文件块信息,之前包括:
分析所述程序的历史启动和运行过程,获取所述历史启动和运行过程中程序对应的至少一个预取文件块信息。
分析所述程序的历史启动和运行过程,获取所述历史启动和运行过程中程序对应的至少一个预取文件块信息,包括:
获取所述程序的历史启动和运行过程中加载的映像文件列表和发生的页面错误Page Fault的虚拟地址;
根据所述映像文件列表和所述虚拟地址计算每个所述虚拟地址对应的文件偏移量;
根据所述每个所述虚拟地址对应的文件偏移量,得到发生的页面错误对应的文件块信息;
对发生的页面错误对应的文件块信息进行合并,得到所述程序对应的至少一个预取文件块信息。
获取所述程序的历史启动和运行过程中加载的映像文件列表和发生的页面错误Page Fault的虚拟地址,包括:
应用跟踪记录机制,记录所述程序的历史启动和运行过程中加载的映像文件列表和发生的页面错误Page Fault的虚拟地址。
对发生的页面错误对应的文件块信息进行合并,得到所述程序对应的至少一个预取文件块信息,具体包括:
将同一映像文件发生的页面错误对应的文件块信息,按照在映像文件内的文件偏移量,将距离小于预设比特数的文件块的文件块信息进行合并,得到预取文件块信息。
当接收到启动程序的指令时,获取所述程序对应的至少一个预取文件块信息,包括:
当接收到启动程序的指令时,根据所述程序的程序信息,获取与所述程序信息对应的至少一个预取文件块信息;
或,
当接收到启动程序的指令时,根据所述程序的程序信息,获取所述程序的程序版本信息,所述程序版本信息携带所述至少一个预取文件块信息。
加载所述至少一个预取文件块信息对应的文件块,包括:
使用异步I/O读取模式加载所述至少一个预取文件块信息对应的文件块;
或,使用动态加载的方式加载所述至少一个预取文件块信息对应的文件块。
一种程序启动的装置,所述装置包括:
预取文件块信息获取模块,用于当接收到启动程序的指令时,获取所述程序对应的至少一个预取文件块信息,所述至少一个预取文件块信息由所述程序在历史启动和运行过程中发生的页面错误对应的文件块信息合并获得;
第一加载模块,用于加载所述至少一个预取文件块信息对应的文件块;
第二加载模块,用于加载所述程序的代码,以便启动所述应用程序。
所述装置还包括:
分析模块,用于分析所述程序的历史启动和运行过程,获取所述历史启动和运行过程中程序对应的至少一个预取文件块信息。
所述分析模块包括:
获取单元,用于获取所述程序的历史启动和运行过程中加载的映像文件列表和发生的页面错误Page Fault的虚拟地址;
计算单元,用于根据所述映像文件列表和所述虚拟地址计算每个所述虚拟地址对应的文件偏移量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310001291.1/2.html,转载请声明来源钻瓜专利网。