CN103150167B - 一种软件运行加速的方法和装置 - Google Patents

一种软件运行加速的方法和装置 Download PDF

Info

Publication number
CN103150167B
CN103150167B CN201310093016.7A CN201310093016A CN103150167B CN 103150167 B CN103150167 B CN 103150167B CN 201310093016 A CN201310093016 A CN 201310093016A CN 103150167 B CN103150167 B CN 103150167B
Authority
CN
China
Prior art keywords
request
software
data
current
file system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310093016.7A
Other languages
English (en)
Other versions
CN103150167A (zh
Inventor
林道正
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201310093016.7A priority Critical patent/CN103150167B/zh
Publication of CN103150167A publication Critical patent/CN103150167A/zh
Priority to PCT/CN2014/070011 priority patent/WO2014146497A1/en
Priority to US14/736,875 priority patent/US9378009B2/en
Application granted granted Critical
Publication of CN103150167B publication Critical patent/CN103150167B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例公开了一种软件运行加速的方法和装置,其中方法的实现包括:在软件开始启动后,确定软件当前是否进入软件的特定场景;若是,则将所述特定场景对应的第二输入/输出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寻道操作的耗时,因而可以大幅加快软件的运行速度和响应速度。

Description

一种软件运行加速的方法和装置
技术领域
本发明涉及电子信息技术领域,特别涉及一种软件运行加速的方法和装置。
背景技术
在软件运行过程中触发了一个固定动作,比如启动软件,打开软件菜单,网络游戏中登录操作,这些都属于软件的特定场景。每当触发这些固定动作时,软件的执行逻辑是相对固定的,所需要读取的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请求进行合并;请参阅图2,应用程序运行时捕获运行中的缺页数据和I/O数据,合成为预取数据存放。应用程序在运行过程中会产生I/O请求,这些I/O请求会发送给文件系统,文件系统则会反馈I/O请求对应的I/O数据。
预取部分:这部分是在训练部分完成以后,训练部分可以是预先完成的。也即是说本次软件启动前预取数据已经存在了。软件启动时,截获软件读取文件内容的I/O请求,然后预取模块根据预取数据,将零碎的I/O请求转换成合并后的I/O请求后发送到文件系统,让文件系统将合并后的I/O请求的I/O数据读入到内存中。
采用以上方案,假设某软件启动时的I/O请求有1000次,依据本发明实施例的算法合并后,I/O请求可能由原来的1000次减少为100次。虽然说合并的过程中会导致总的I/O大小变大,但减少了900次I/O请求,也就是说减少了900次I/O寻道操作。由于在传统机械硬盘上I/O寻道操作远比读取操作耗时,所以即便是多读了一些多余的I/O数据,但软件等待I/O的时间会大幅减少,从而可以大幅加快软件的运行速度和响应速度。
以下实施例将以软件启动的加速方案为例进行说明,分为两个部分,具体如下:
一、学习方案 
请参阅图3所示的学习方案流程图。该学习方案是在对目标软件进行加速前的预操作。具体包括如下步骤:
301:启动监控,开始监控目标软件的动作;
302:判断是否触发特定场景,该步骤确定目标软件当前是否进入了特定场景,如果否,继续判断,如果是,则进入303;
由于不是特定场景的情况下,I/O请求的数据并不固定,可以不用考虑这类情况。
303:捕获缺页数据和I/O数据;
304:将缺页数据转化成I/O数据;
305:合并304中得到的I/O数据;
合并是指将零碎的I/O请求的I/O数据进行合并。比如我们捕获到了2个I/O请求的I/O数据如下表1所示:
表1
可以看到将零碎的相邻的两次I/O请求合并成了一次。合并后的I/O请求的数据范围覆盖了合并前的2个I/O请求的范围。
306:生成预取数据。
二、预取方案 
请参阅图4所示的预取方案流程图。该流程是在学习方案预先完成以后的流程,具体包括如下步骤:
401:启动监控,开始监控目标软件的动作;
402:判断是否触发特定场景,该步骤确定目标软件当前是否进入了特定场景,如果否,进入405,如果是,则进入403;
403:载入预取数据到内存中;
404:开始截获目标软件的I/O请求;
405:判断I/O数据是否在预取数据里,具体可以是:查询当前截获的I/O请求是否在预取数据中保存的合并I/O请求范围内;如果是,进入407,如果否,进入406;
406:发送原始I/O请求给文件系统;也即是将截获到的I/O请求原封不动的发送给文件系统;
407:将原始I/O请求改为合并I/O请求,也即是将截获到的I/O请求改为与之对应的合并I/O请求;
408:发送合并I/O请求给文件系统。
以上预取方案中,首先截获软件的I/O请求,然后到预取数据里面查询此次I/O请求是在哪块合并I/O请求中,请参阅表1,比如:预取方案截获到了<C:\windows\system32\ntdll.dll,1024,4096>这次I/O请求,那么我们将此次 I/O请求改为<C:\windows\system32\ntdll.dll,1024,11264>,即让文件系统把目标软件将要用到的<C:\windows\system32\ntdll.dll,8192,4096>这次I/O请求也一起读入内存,这样当软件在后续运行过程中需要使用到<C:\windows\system32\ntdll.dll,8192,4096>这次I/O请求的数据时,操作系统将会发现这块数据已经在内存里面了,就不会再向文件系统发送I/O请求了。这样就减少了I/O请求次数和I/O寻道操作次数,从而可以大幅加快软件的运行速度和响应速度。
本发明实施例还提供了一种软件运行加速的装置,如图5所示,包括:
场景确定单元501,用于在软件开始启动后,确定软件当前是否进入软件的特定场景;
上述特定场景是软件在运行过程中访问的数据相对固定的场景。例如:启动软件,打开软件菜单,网络游戏中登录操作,这些都属于软件的特定场景。每当触发这些特定场景时,软件的执行逻辑是相对固定的,所需要访问的I/O数据也是相对固定的。
请求发送单元502,用于若场景确定单元501确定结果为是,则将上述特定场景对应的第二输入/输出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数据的关联建立方案,如图6所示,上述装置还包括:
第一捕获单元601,用于在上述软件本次开始启动之前的运行过程中,捕获上述软件的第一I/O请求;
数据获取单元602,用于获取上述第一捕获单元601捕获的第一I/O请求的I/O数据;
请求合并单元603,用于将上述第一捕获单元601捕获的至少两个第一I/O 请求请求合并为一个第二I/O请求,将上述第二I/O请求与上述至少两个第一I/O请求的I/O数据关联到文件系统。
可选地,上述请求合并单元603,具体用于将上述第一捕获单元601捕获的至少两个相邻的第一I/O请求合并为一个第二I/O请求。对相邻的第一I/O请求进行合并,可以减少数据读取量,进一步提高软件运行速率。
进一步地,上述场景确定单元501,还用于在上述第一捕获单元601捕获上述软件的第一I/O请求之前,确定上述软件当前是否处于上述软件的特定场景;
上述第一捕获单元601,具体用于在上述软件处于上述软件的特定场景期间,捕获上述软件的I/O请求作为第一I/O请求。
可选地,上述数据获取单元602,具体用于在上述第一捕获单元601捕获到上述软件的第一I/O请求后,记录上述软件的当前第一I/O请求的缺页数据和I/O数据;
上述请求合并单元603,还用于将上述上述数据获取单元602记录的缺页数据和I/O数据转换为I/O数据,然后将预取数据与上述第二I/O请求关联到文件系统;上述预取数据是与组成第二I/O请求的第一I/O请求对应的转换得到的I/O数据。
进一步地,本发明实施例还给出了执行预取的时机和条件的说明,如图7所示,上述装置还包括:
第二捕获单元701,用于在上述请求发送单元502将上述特定场景对应的第二输入/输出I/O请求发送给文件系统之前,若上述软件当前处于上述软件的特定场景过程中,则捕获上述软的当前I/O请求作为第一I/O请求;
类型确定单元702,用于确定第二捕获单元701捕获的当前I/O请求请求是否有对应的第二I/O请求;
上述请求发送单元,具体用于若上述类型确定单元702确定当前I/O请求没有对应的第二I/O请求,则将上述当前I/O请求发送给上述文件系统;若上述类型确定单元702确定当前I/O请求有对应的第二I/O请求,则将上述当前I/O请求对应的第二I/O请求发送给文件系统。
值得注意的是,上述装置实施例中,所包括的各个单元只是按照功能逻 辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种软件运行加速的方法,其特征在于,包括:
在软件开始启动后,确定软件当前是否进入软件的特定场景;所述特定场景是软件在运行过程中访问的数据相对固定的场景;
若是,则将所述特定场景对应的第二输入/输出I/O请求发送给文件系统,使文件系统将所述第二I/O请求的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请求包括:在所述软件处于所述软件的特定场景期间,捕获所述软件的I/O请求作为第一I/O请求。
4.根据权利要求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数据。
5.根据权利要求1或2所述方法,其特征在于,将所述特定场景对应的第二输入/输出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请求发送给文件系统。
6.一种软件运行加速的装置,其特征在于,包括:
场景确定单元,用于在软件开始启动后,确定软件当前是否进入软件的特定场景;所述特定场景是软件在运行过程中访问的数据相对固定的场景;
请求发送单元,用于若场景确定单元确定结果为是,则将所述特定场景对应的第二输入/输出I/O请求发送给文件系统,使文件系统将所述第二I/O请求的I/O数据读入到内存中;所述第二I/O请求请求的I/O数据包含至少两个第一I/O请求的I/O数据,所述第一I/O请求是所述软件的特定场景下原始I/O请求,所述至少两个第一I/O请求为至少两个相邻的第一I/O请求。
7.根据权利要求6所述装置,其特征在于,还包括:
第一捕获单元,用于在所述软件本次开始启动之前的运行过程中,捕获所述软件的第一I/O请求;
数据获取单元,用于获取所述第一捕获单元捕获的第一I/O请求的I/O数据;
请求合并单元,用于将所述第一捕获单元捕获的至少两个第一I/O请求请求合并为一个第二I/O请求,将所述第二I/O请求与所述至少两个第一I/O请求的I/O数据关联到文件系统。
8.根据权利要求7所述装置,其特征在于,
所述场景确定单元,还用于在所述第一捕获单元捕获所述软件的第一I/O请求之前,确定所述软件当前是否处于所述软件的特定场景;
所述第一捕获单元,具体用于在所述软件处于所述软件的特定场景期间,捕获所述软件的I/O请求作为第一I/O请求。
9.根据权利要求8所述装置,其特征在于,
所述数据获取单元,具体用于在所述第一捕获单元捕获到所述软件的第一I/O请求后,记录所述软件的当前第一I/O请求的缺页数据和I/O数据;
所述请求合并单元,还用于将所述数据获取单元记录的缺页数据和I/O数据转换为I/O数据,然后将预取数据与所述第二I/O请求关联到文件系统;所述预取数据是与组成第二I/O请求的第一I/O请求对应的转换得到的I/O数据。
10.根据权利要求6或7所述装置,其特征在于,还包括:
第二捕获单元,用于在所述请求发送单元将所述特定场景对应的第二输入/输出I/O请求发送给文件系统之前,若所述软件当前处于所述软件的特定场景过程中,则捕获所述软件当前的I/O请求作为第一I/O请求;
类型确定单元,用于确定第二捕获单元捕获的当前I/O请求是否有对应的第二I/O请求;
所述请求发送单元,具体用于若所述类型确定单元确定当前I/O请求没有对应的第二I/O请求,则将所述当前I/O请求发送给所述文件系统;若所述类型确定单元确定当前I/O请求有对应的第二I/O请求,则将所述当前I/O请求对应的第二I/O请求发送给文件系统。
CN201310093016.7A 2013-03-21 2013-03-21 一种软件运行加速的方法和装置 Active CN103150167B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201310093016.7A CN103150167B (zh) 2013-03-21 2013-03-21 一种软件运行加速的方法和装置
PCT/CN2014/070011 WO2014146497A1 (en) 2013-03-21 2014-01-02 Method and device for accelerating running of software
US14/736,875 US9378009B2 (en) 2013-03-21 2015-06-11 Method and device for accelerating running of software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310093016.7A CN103150167B (zh) 2013-03-21 2013-03-21 一种软件运行加速的方法和装置

Publications (2)

Publication Number Publication Date
CN103150167A CN103150167A (zh) 2013-06-12
CN103150167B true CN103150167B (zh) 2015-07-08

Family

ID=48548269

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310093016.7A Active CN103150167B (zh) 2013-03-21 2013-03-21 一种软件运行加速的方法和装置

Country Status (3)

Country Link
US (1) US9378009B2 (zh)
CN (1) CN103150167B (zh)
WO (1) WO2014146497A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150167B (zh) 2013-03-21 2015-07-08 腾讯科技(深圳)有限公司 一种软件运行加速的方法和装置
CN106469174B (zh) * 2015-08-19 2019-10-29 阿里巴巴集团控股有限公司 数据读取方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100573437C (zh) * 2006-12-28 2009-12-23 华中科技大学 一种基于连续度聚类和时间序列的i/o区域预取方法
CN102662713A (zh) * 2012-04-12 2012-09-12 腾讯科技(深圳)有限公司 提高应用程序运行速度的方法、装置及终端

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1543092A (zh) * 2003-11-07 2004-11-03 清华大学 基于fc-san存储设备的scsi命令优化方法
US8423720B2 (en) * 2007-05-10 2013-04-16 International Business Machines Corporation Computer system, method, cache controller and computer program for caching I/O requests
CN103150167B (zh) * 2013-03-21 2015-07-08 腾讯科技(深圳)有限公司 一种软件运行加速的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100573437C (zh) * 2006-12-28 2009-12-23 华中科技大学 一种基于连续度聚类和时间序列的i/o区域预取方法
CN102662713A (zh) * 2012-04-12 2012-09-12 腾讯科技(深圳)有限公司 提高应用程序运行速度的方法、装置及终端

Also Published As

Publication number Publication date
US20150277896A1 (en) 2015-10-01
CN103150167A (zh) 2013-06-12
WO2014146497A1 (en) 2014-09-25
US9378009B2 (en) 2016-06-28

Similar Documents

Publication Publication Date Title
CN101814038B (zh) 一种加快计算机启动速度的方法
US10026446B2 (en) Intelligent playback method for video records based on a motion information and apparatus thereof
RU2367037C2 (ru) Устройство записи данных, способ записи данных, устройство обработки данных, способ обработки данных, носитель записи программы, носитель записи данных
US7831578B2 (en) Apparatus for file system management with virtual file name
US11182425B2 (en) Audio processing method, server, user equipment, and system
CN103546698B (zh) 一种移动终端录制视频保存方法和装置
KR20180087970A (ko) 동적 생성된 메타데이터를 이용한 영상 콘텐츠 콘텍스트 변이 추적 장치 및 방법
US20170309307A1 (en) Video recording apparatus with pre-event circulation recording function
CN103150167B (zh) 一种软件运行加速的方法和装置
CN102902630A (zh) 一种访问本地文件的方法和装置
CN116798144A (zh) 碰撞视频存储方法、系统、装置以及计算机可读存储介质
US11481142B2 (en) Method and device for downloading resources
US20160134674A1 (en) Communication apparatus, communication method, and program
CN104182959A (zh) 目标搜索方法及装置
CN112954445B (zh) 流媒体文件播放方法、装置、计算机设备和存储介质
CN109743377A (zh) 一种基于http的小文件读写优化方法
US10049158B1 (en) Analyzing user behavior relative to media content
US20090157988A1 (en) Data processing apparatus and data processing method
CN102169706A (zh) Yuv文件的存储、播放方法及其装置
US8452158B2 (en) Recording apparatus, imaging and recording apparatus, recording method, and program
CN109660576B (zh) 用户数据实时迁移方法、存储介质、电子设备及系统
CN102073604A (zh) 一种同步动态存储器读写控制方法、装置和系统
CN111611433A (zh) 一种视频的处理方法、装置、设备及介质
KR20210028805A (ko) 로컬 스트리밍 서버를 이용한 스트리밍 콘텐츠의 재생 방법 및 시스템
US20110193991A1 (en) Recording apparatus, imaging and recording apparatus, recording method, and program

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230710

Address after: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors

Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Address before: 518031 East 403 room, Sai Ge science and Technology Park, Futian District Zhenxing Road, Shenzhen, Guangdong, China, 2

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

TR01 Transfer of patent right