一种软件运行加速的方法和装置制造方法及图纸

技术编号:8800964 阅读:178 留言:0更新日期:2013-06-13 05:40
本发明专利技术实施例公开了一种软件运行加速的方法和装置,其中方法的实现包括:在软件开始启动后,确定软件当前是否进入软件的特定场景;若是,则将所述特定场景对应的第二输入/输出I/O请求发送给文件系统,使文件系统将所述第二I/O请求的I/O数据读入到内存中;所述第二I/O请求请求的I/O数据包含至少两个第一I/O请求的I/O数据,所述第一I/O请求是所述软件的特定场景下原始I/O请求。采用以上方案,I/O请求数量将会大幅减少。由于I/O请求数量大幅减少,也即是说I/O寻道操作次数大幅减少。由于大幅减少了I/O寻道操作的耗时,因而可以大幅加快软件的运行速度和响应速度。

【技术实现步骤摘要】

本专利技术涉及电子信息
,特别涉及一种软件运行加速的方法和装置
技术介绍
在软件运行过程中触发了一个固定动作,比如启动软件,打开软件菜单,网络游戏中登录操作,这些都属于软件的特定场景。每当触发这些固定动作时,软件的执行逻辑是相对固定的,所需要读取的I/o (Input/Output,输入输出)数据也是相对固定的。读取的I/O数据一般通过I/O请求的形式来实现,一般以〈file, offset, length〉格式来描述软件对磁盘文件上的一段数据内容的请求。其中,file代表磁盘数据内容所在的文件,offset代表磁盘数据内容在文件内的偏移,length代表磁盘数据内容的大小。由于软件运行时需要访问磁盘上的文件,并且软件在软件的特定场景下访问的数据都是相对固定的。为了加快软件的运行,提出了预取(Prefetch)机制,所谓的预取是将软件未来一段时间将要访问磁盘上的数据提前读入内存中。Prefetch机制是:通过集中读取将软件未来一段时间将要访问磁盘上的数据提前读入内存中的方法,来避免在软件运行时硬缺页而导致多次且零碎的I/O请求。Prefetch工作方案如下:1、记录下软件启动后10秒内的I/O请求;2、当软件下次启动时,现将软件10秒内要用到的I/O数据读入内存,然后再让软件继续执行。上述Prefetch机制,需要先将预取数据读入内存,然后开始运行软件,由于并行度低,软件运行速度和响应速度慢。
技术实现思路
本专利技术实施例提供了一种软件运行加速的方法和装置,用于提高软件的运行速度和响应速度。一种软件运行加速的方法,包括:在软件开始启动后,确定软件当前是否进入软件的特定场景;若是,则将所述特定场景对应的第二输入/输出I/O请求发送给文件系统,使文件系统将所述第二 I/o请求的I/O数据读入到内存中;所述第二 I/O请求请求的I/O数据包含至少两个第一 I/o请求的I/O数据,所述第一 I/O请求是所述软件的特定场景下原始I/O请求。一种软件运行加速的装置,包括:场景确定单元,用于在软件开始启动后,确定软件当前是否进入软件的特定场旦牙、;请求发送单元,用于若场景确定单元确定结果为是,则将所述特定场景对应的第二输入/输出I/O请求发送给文件系统,使文件系统将所述第二 I/o请求的I/O数据读入到内存中;所述第二 I/o请求请求的I/O数据包含至少两个第一 I/O请求的I/O数据,所述第一 I/O请求是所述软件的特定场景下原始I/O请求。从以上技术方案可以看出,本专利技术实施例具有以下优点:采用以上方案,I/O请求数量将会大幅减少。由于I/o请求数量大幅减少,也即是说I/O寻道操作次数大幅减少。由于大幅减少了 I/O寻道操作的耗时,因而可以大幅加快软件的运行速度和响应速度。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例方法流程示意图;图2为本专利技术实施例软件启动工作流程示意图;图3为本专利技术实施例的学习方案流程示意图;图4为本专利技术实施例的预取方案流程示意图;图5为本专利技术实施例装置结构示意图;图6为本专利技术实施例装置结构示意图;图7为本专利技术实施例装置结构示意图。具体实施例方式为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述,显然,所描述的实施例仅仅是本专利技术一部份实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。本专利技术实施例提供了一种软件运行加速的方法,如图1所示,包括:101:在软件开始启动后,确定软件当前是否进入软件的特定场景;上述特定场景是软件在运行过程中访问的数据相对固定的场景。例如:启动软件,打开软件菜单,网络游戏中登录操作,这些都属于软件的特定场景。每当触发这些特定场景时,软件的执行逻辑是相对固定的,所需要访问的I/o数据也是相对固定的。可选地,本专利技术实施例给出了在102中使用的第二 I/O请求如何得到,以及第二 I/O请求与I/O数据的关联建立方案,在后续实施例中,将以“学习方案”作为主题来进行举例说明,可以如下:在上述软件本次开始启动之前的运行过程中,还包括:捕获上述软件的第一 I/O请求,并获取第一 I/O请求的I/O数据;上述第一 I/O请求是上述软件的特定场景下原始I/o请求;将至少两个第一 I/O请求请求合并为一个第二 I/O请求,将上述第二 I/O请求与上述至少两个第一 I/O请求的I/O数据关联到文件系统。优选地,上述至少两个第一 I/O请求为至少两个相邻的第一 I/O请求。更优选地,可以将一个特定场景的所有相邻第一 I/o请求合并为一个第二 I/O请求。对相邻的第一 I/O请求进行合并,可以减少数据读取量,进一步提高软件运行速率。可选地,在捕获上述软件的第一 I/O请求之前还包括:确定上述软件当前是否处于上述软件的特定场景;上述捕获上述软件的第一 I/O请求包括:在上述软件处于上述软件的特定场景期间,捕获上述软件的I/o请求作为第一 I/O请求。可选地,上述将上述第二 I/O请求与上述至少两个第一 I/O请求的I/O数据关联到文件系统,包括:在捕获到第一 I/O请求后,记录上述软件的当前第一 I/O请求的缺页数据和I/O数据,将上述缺页数据和I/o数据转换为I/O数据,然后将预取数据与上述第二 I/O请求关联到文件系统;上述预取数据是与组成第二 I/o请求的第一 I/O请求对应的转换得到的I/O数据。102:若是,则将上述特定场景对应的第二输入/输出I/O请求发送给文件系统,使文件系统将上述第二 I/o请求的I/O数据读入到内存中;上述第二 I/O请求请求的I/O数据包含至少两个第一 I/o请求的I/O数据,上述第一 I/O请求是上述软件的特定场景下原始I/o请求。采用以上方案,I/O请求数量将会大幅减少。由于I/O请求数量大幅减少,也即是说I/o寻道操作次数大幅减少。由于大幅减少了 I/O寻道操作的耗时,因而可以大幅加快软件的运行速度和响应速度。进一步地,本专利技术实施例还给出了执行预取的时机和条件的说明,在后续实施例中将以“预取方案”作为主题来进行举例说明。将上述特定场景对应的第二输入/输出I/O请求发送给文件系统之前还包括:若上述软件当前处于上述软件的特定场景过程中,则捕获上述软的当前I/O请求作为第一 I/O请求,并确定当前I/O请求请求是否有对应的第二 I/O请求;若当前I/O请求没有对应的第二 I/o请求,则将上述当前I/O请求发送给上述文件系统;上述将上述特定场景对应的第二 I/O请求发送给文件系统包括:若当前I/O请求有对应的第二 I/O请求,则将上述当前I/O请求对应的第二 I/O请求发送给文件系统。以上方案致力于在软件的特定场景下,更高效的合并零碎的I/O请求,从而减少软件的I/o次数。以软件启动的场景为例,主要工作流程如图2所示,包含训练和预取两个部分。训练部分:需要预先采集软件启动时需要读取的数据,也即是软件的预取数据;本文档来自技高网...

【技术保护点】
一种软件运行加速的方法,其特征在于,包括:在软件开始启动后,确定软件当前是否进入软件的特定场景;若是,则将所述特定场景对应的第二输入/输出I/O请求发送给文件系统,使文件系统将所述第二I/O请求的I/O数据读入到内存中;所述第二I/O请求请求的I/O数据包含至少两个第一I/O请求的I/O数据,所述第一I/O请求是所述软件的特定场景下原始I/O请求。

【技术特征摘要】
1.一种软件运行加速的方法,其特征在于,包括: 在软件开始启动后,确定软件当前是否进入软件的特定场景; 若是,则将所述特定场景对应的第二输入/输出I/o请求发送给文件系统,使文件系统将所述第二 I/o请求的I/O数据读入到内存中;所述第二 I/O请求请求的I/O数据包含至少两个第一 I/o请求的I/O数据,所述第一 I/O请求是所述软件的特定场景下原始I/O请求。2.根据权利要求1所述方法,其特征在于,在所述软件本次开始启动之前的运行过程中,还包括: 捕获所述软件的第一 I/o请求,并获取第一 I/O请求的I/O数据; 将至少两个第一 I/o请求请求合并为一个第二 I/O请求,将所述第二 I/O请求与所述至少两个第一 I/O请求的I/O数据关联到文件系统。3.根据权利要求2所述方法,其特征在于,所述至少两个第一I/O请求为至少两个相邻的第一 I/o请求。4.根据权利要求2或3所述方法,其特征在于,在捕获所述软件的第一I/O请求之前还包括: 确定所述软件当前是否处于所述软件的特定场景; 所述捕获所述软件的第一 I/o请求包括:在所述软件处于所述软件的特定场景期间,捕获所述软件的I/o请求作为第一 I/O请求。5.根据权利要求4所述方法,其特征在于,所述将所述第二I/O请求与所述至少两个第一 I/o请求的I/O数据关联到文件系统,包括: 在捕获到第一 I/o请求后,记录所述软件的当前第一 I/O请求的缺页数据和I/O数据,将所述缺页数据和I/o数据转换为I/O数据,然后将预取数据与所述第二 I/O请求关联到文件系统;所述预取数据是与组成第二 I/o请求的第一 I/O请求对应的转换得到的I/O数据。6.根据权利要求1至3任意一项所述方法,其特征在于,将所述特定场景对应的第二输入/输出I/o请求发送给文件系统之前还包括: 若所述软件当前处于所述软件的特定场景过程中,则捕获所述软的当前I/o请求作为第一 I/O请求,并确定当前I/O请求请求是否有对应的第二 I/O请求;若当前I/O请求没有对应的第二 I/o请求,则将所述当前I/O请求发送给所述文件系统; 所述将所述特定场景对应的第二 I/o请求发送给文件系统包括: 若当前I/o请求有对应的第二 I/O请求,则将所述当前I/o请求对应的第二 I/O请求发送给文件系统。7.一种软件运行加速的装置,其特征在于,包括: 场景确定单元,用于在软件开始启动后,确定软件当前是否进入软件的特定场景; 请求发送单元,用于若场景确定单元确定...

【专利技术属性】
技术研发人员:林道正
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1