CN106991058B - 预取文件处理方法及装置 - Google Patents

预取文件处理方法及装置 Download PDF

Info

Publication number
CN106991058B
CN106991058B CN201610042031.2A CN201610042031A CN106991058B CN 106991058 B CN106991058 B CN 106991058B CN 201610042031 A CN201610042031 A CN 201610042031A CN 106991058 B CN106991058 B CN 106991058B
Authority
CN
China
Prior art keywords
file
disk
physical
blocks
block
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
CN201610042031.2A
Other languages
English (en)
Other versions
CN106991058A (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
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 CN201610042031.2A priority Critical patent/CN106991058B/zh
Publication of CN106991058A publication Critical patent/CN106991058A/zh
Application granted granted Critical
Publication of CN106991058B publication Critical patent/CN106991058B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种预取文件处理方法及装置,其中,所述预取文件处理方法包括:应用程序安装包解压后,从所述应用程序安装包获取第一预取文件,由所述第一预取文件中得到多个文件逻辑偏移块;对所述多个文件逻辑偏移块进行排序处理,形成磁盘物理位置连续的第二预取文件;及保存所述第二预取文件,供完成安装的应用程序加载时读取。本发明能够降低磁盘读取时间,从而有利于应用程序的快速启动。

Description

预取文件处理方法及装置
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种预取文件处理方法及装置。
背景技术
启动预取是一种加快应用程序启动速度的技术,主要原理是在应用程序加载的时候通过读取预取文件,将应用程序的应用文件由磁盘加载至用户设备的物理内存,以避免应用程序在启动的时候耗费大量的时间从磁盘中读取这些应用文件。
然而,由于用户设备上磁盘环境的不一致,容易产生磁盘碎片,使得应用程序的应用文件被离散的存储在磁盘中,进而使得通过预取文件所进行的应用文件的读取在物理上并不连续,不可避免地需要进行大距离磁盘寻道,导致磁盘读取时间的增加,不利于提高应用程序的启动速度。
发明内容
基于此,有必要提供一种能够降低磁盘读取时间的预取文件处理方法。
此外,还有必要提供一种能够降低磁盘读取时间的预取文件处理装置。
为了解决上述技术问题,本发明所采用的技术方案为:
一种预取文件处理方法,包括:应用程序安装包解压后,从所述应用程序安装包获取第一预取文件,由所述第一预取文件中得到多个文件逻辑偏移块;对所述多个文件逻辑偏移块进行排序处理,形成磁盘物理位置连续的第二预取文件;及保存所述第二预取文件,供完成安装的应用程序加载时读取。
一种预取文件处理装置,包括:文件块获取模块,用于应用程序安装包解压后,从所述应用程序安装包获取第一预取文件,由所述第一预取文件中得到多个文件逻辑偏移块;文件块排序模块,用于对所述多个文件逻辑偏移块进行排序处理,形成磁盘物理位置连续的第二预取文件;及文件保存模块,用于保存所述第二预取文件,供完成安装的应用程序加载时读取。
与现有技术相比,本发明具有以下有益效果:
在应用程序安装包解压后,获取应用程序对应的第一预取文件,并由第一预取文件中得到多个文件逻辑偏移块,通过对多个文件逻辑偏移块进行排序处理,形成磁盘物理位置连续的第二预取文件,并保存。也就是说,应用程序加载的时候通过读取第二预取文件,将能够物理上连续地读取离散存储于磁盘中的应用程序的应用文件,避免了大距离磁盘寻道,有效地降低了磁盘读取的时间,从而有利于应用程序的快速启动。
附图说明
图1为本发明各实施例所提供的一种用户设备的结构示意图;
图2为一实施例的预取文件处理方法的流程图;
图3为另一实施例的预取文件处理方法的流程图;
图4为图2中对所述多个文件逻辑偏移块进行排序处理,以形成磁盘物理位置连续的第二预取文件的方法流程图;
图4a为文件逻辑偏移块与磁盘物理块建立了对应关系的示意图;
图4b为文件逻辑偏移块进行拆分的示意图;
图5为图4中通过所述文件逻辑偏移块在磁盘中定位磁盘物理块,并建立所述文件逻辑偏移块与磁盘物理块之间的对应关系的方法流程图;
图5a为根据簇信息将物理存储位置信息转换为对应的逻辑偏移位置和物理偏移位置的示意图;
图6为现有技术中利用第一预取文件实现应用启动预取过程中磁盘寻道的示意图;
图7为本发明中利用第二预取文件实现应用启动预取过程中磁盘寻道的示意图;
图8为一实施例的预取文件处理装置的结构框图;
图9为另一实施例的预取文件处理装置的结构框图;
图10为图8中文件块排序模块的结构框图;
图11为图10中文件块对应单元的结构框图。
具体实施方式
体现本发明特征与优点的典型实施方式将在以下的说明中详细叙述。应理解的是本发明能够在不同的实施方式上具有各种的变化,其皆不脱离本发明的范围,且其中的说明及图示在本质上是当作说明之用,而非用以限制本发明。
请参阅图1,图1是本发明各实施例提供的一种用户设备100的结构示意图。本发明各实施例中的由用户设备所执行的步骤均可以基于该图中所示的用户设备的结构,但不能认为是提供了对本发明各实施例的使用范围的任何限制,且也不能解释为需要依赖于或具有图示的示例性的用户设备100中的一个或者多个部件的组合。
该用户设备可以是个人计算机、智能手机、平板电脑、服务器等,该用户设备100可因配置或者性能的不同而产生较大的差异,其至少包括:电源110、接口130、至少一存储介质150、以及至少一中央处理器(CPU ,Central Processing Units)170。
具体地,电源110用于为用户设备100上的各硬件设备提供工作电压。
接口130包括至少一有线或无线网络接口131、至少一串并转换接口133、至少一输入输出接口135以及至少一USB接口137等,用于与外部设备通信。
存储介质150作为资源存储的载体,可以是随机存储器(物理内存)、磁盘、光盘或者可用于存储所需信息并可访问的任何其他介质,其上所存储的资源包括操作系统151、应用程序153及数据155等,存储方式可以是短暂存储或者永久存储。其中,操作系统151用于管理与控制用户设备100上的各硬件设备以及应用程序153,以实现中央处理器170对数据155的计算与处理,其可以是Windows ServerTM、Mac OS XTM、UnixTM、LinuxTM、FreeBSDTM等。应用程序153是基于操作系统151之上完成至少一项特定工作的计算机程序,其可以包括至少一模块(图示未示出),每个模块都可以分别包含有对用户设备100的一系列操作指令。数据155可以是存储于存储介质150中的预取文件、应用文件、应用程序安装包等等。
中央处理器170可以包括一个或多个以上的处理器,并设置为通过总线与存储介质150通信,用于计算与处理存储介质150中的数据155。
通过中央处理器170读取存储介质150中存储的一系列操作指令,并基于存储介质150上的操作系统151在用户设备100上执行,进而使得本发明中各实施例的全部或者部分步骤可以通过在用户设备100上运行相关的计算机程序来完成。
此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本发明,因此,实现本发明并不局限于任何特定硬件电路、软件以及两者的组合。
请参阅图2,在一实施例中,一种预取文件处理方法,包括以下步骤:
步骤210,应用程序安装包解压后,从应用程序安装包获取第一预取文件,由第一预取文件中得到多个文件逻辑偏移块。
第一预取文件中存储了多个文件逻辑偏移块,使得应用程序在加载过程中,能够通过顺序批量读取文件逻辑偏移块将应用程序位于磁盘中的应用文件加载至用户设备的物理内存,以便于后续启动时直接由物理内存中读取应用文件,以加快应用程序的启动。
应用程序安装包中包含有应用程序运行时所需的应用文件,例如,应用文件可以是可执行文件、动态链接库、加密组件、兼容组件等等,为了应用程序安装完毕首次启动时可以直接进行应用文件的读取,应用程序安装包中还包含有第一预取文件。
应用程序安装包的执行过程包括解压和安装,解压过程是将应用程序安装包中所有文件提取出来并存放至用户设备。
因此,应用程序安装包解压后,将能够从应用程序安装包中获取到第一预取文件,进而得到第一预取文件中的多个文件逻辑偏移块。
步骤230,对多个文件逻辑偏移块进行排序处理,形成磁盘物理位置连续的第二预取文件。
应用程序的加载过程是按照预取文件中文件逻辑偏移块的存储顺序进行的。由于应用程序的应用文件通常是离散的存储于磁盘的不同磁盘物理位置,进而使得顺序读取文件逻辑偏移块所进行的应用文件加载在物理上是不连续的。
因此,需要对第一预取文件中的多个文件逻辑偏移块进行排序处理,以形成磁盘物理位置连续的第二预取文件,即第二预取文件中多个文件逻辑偏移块所对应的应用文件在磁盘中的磁盘物理位置是连续的,从而有利于降低磁盘读取的时间。
需要说明的是,此处的磁盘物理位置连续并非完全连续,是相对于第二预取文件中的多个文件逻辑偏移块而言。例如,第一预取文件中依次存储有A、B、C三个文件逻辑偏移块,A文件逻辑偏移块对应的应用文件在磁盘中的磁盘物理位置是100字节,B文件逻辑偏移块对应的是50字节,C文件逻辑偏移块对应的200字节,则磁盘物理位置连续的第二预取文件中三个文件逻辑偏移块的存储顺序是BAC或者CAB。
步骤250,保存第二预取文件,供完成安装的应用程序加载时读取。
第二预取文件生成之后,将被保存于所在用户设备的存储介质中,以方便应用程序在今后的每次启动加载过程时读取,从而提高应用程序的启动速度。
通过如上所述的方法,第一预取文件被优化形成磁盘物理位置连续的第二预取文件,使得应用程序的加载过程将按照连续的磁盘物理位置读取应用文件,有效地避免了大距离磁盘寻道,降低了磁盘读取的时间,从而有利于应用程序的快速启动。
此外,虽然不同的用户设备的磁盘环境各不相同,但是通过应用程序安装包将应用程序安装于指定用户设备时,第二预取文件是根据应用程序安装包所在的该指定用户设备的磁盘环境形成的,因此第二预取文件的磁盘物理位置能够跟随不同的用户设备的磁盘环境动态变化,具备自适应性。
在一实施例中,步骤210之前,如上所述的方法还包括以下步骤:
打包第一预取文件和应用程序的其他应用文件,生成应用程序安装包。
为了使得应用程序完成安装之后的首次启动过程中,就可以直接从用户设备的物理内存中进行应用文件的读取,将在应用程序安装包中进行第一预取文件的添加。
具体地,在第一预取文件和应用程序的其他应用文件完成编译之后,对第一预取文件和应用程序的其他应用文件进行打包,则生成了包含有第一预取文件的应用程序安装包。
通过如上所述的方法,使得对第一预取文件的优化操作可以在应用程序安装包的执行过程中实现,而不会对应用程序的首次启动造成任何影响,从而有利于提升用户体验。
请参阅图3,在一实施例中,打包第一预取文件和应用程序的其他应用文件,生成应用程序安装包的步骤之前,如上所述的方法还包括以下步骤:
步骤310,获取应用程序的历史启动过程中发生的磁盘硬错误的虚拟地址信息。
所谓的磁盘硬错误是由于应用程序读取的应用文件不存在用户设备的物理内存中,而位于磁盘上,使得应用程序需要到磁盘上加载应用文件,从而产生应用程序运行异常。
虚拟地址是应用程序启动过程中读取的应用文件的逻辑偏移位置,逻辑偏移位置相对于磁盘中的磁盘物理位置。则通过获取应用程序的启动过程中发生的磁盘硬错误的虚拟地址,即可以获知在应用程序的启动过程中哪些虚拟地址未被映射到磁盘中有效的磁盘物理位置上,换句话说,就是哪些应用文件未被存放在用户设备的物理内存上。
由于每次应用程序启动过程中发生的磁盘硬错误并不完全相同,因此,对应用程序的历史启动过程中发生的磁盘硬错误进行收集和统计,所获取到的虚拟地址信息包含有多个虚拟地址,该多个虚拟地址分别对应于多个未被存放在用户设备的物理内存上的应用文件。
步骤330,根据虚拟地址信息计算得到多个文件逻辑偏移块,合并多个文件逻辑偏移块得到第一预取文件。
本实施例中,根据虚拟地址信息中的多个虚拟地址,将首先计算得到应用程序启动过程中发生的磁盘读取所对应的多个文件偏移量和文件大小,进而再通过该多个文件偏移量和文件大小计算得到多个文件逻辑偏移块。
多个文件逻辑偏移块之间的物理距离各不相同,还将根据预设的物理距离对该多个文件逻辑偏移块进行合并,从而生成应用程序对应的第一预取文件。通过包含有多个文件逻辑块的第一预取文件,将使得应用程序能够在启动前将磁盘中的多个应用文件加载至用户设备的物理内存中。
请参阅图4,在一实施例中,步骤230包括以下步骤:
步骤231,通过文件逻辑偏移块在磁盘中定位磁盘物理块,并建立文件逻辑偏移块与磁盘物理块之间的对应关系。
如前所述,应用程序的应用文件是被离散的存储于磁盘的不同磁盘物理位置的,换句话说,应用文件在磁盘中实际是以多个磁盘物理块的形式进行存储的。若要在应用程序的加载过程中通过第二预取文件连续地将应用文件从磁盘中读取出来,则首先需要通过第一预取文件中的文件逻辑偏移块在磁盘中进行磁盘物理块的定位,得到对应的磁盘物理块,并建立二者之间的对应关系。
通过二者之间所建立的对应关系,即能够获知通过文件逻辑偏移块所读取到的磁盘物理块究竟位于磁盘的哪个磁盘物理位置,以利于后续根据磁盘物理块所在位置对文件逻辑偏移块进行排序处理,进而存储形成磁盘物理位置连续的第二预取文件。
步骤233,按照磁盘物理块之间的物理距离对文件逻辑偏移块进行拆分归并。
在文件逻辑偏移块与磁盘物理块之间建立对应关系后,文件逻辑偏移块所对应的磁盘物理块所在位置可能并不连续,并且在磁盘上的物理距离相差很大。
例如,如图4a所示,在NTFS磁盘文件系统中,文件逻辑偏移块401的逻辑偏移位置为8000字节到20000字节,其所对应的磁盘物理块404—407的磁盘物理位置分别为1280簇、1281簇、400簇、401簇。那么,1280簇和400簇之间的物理距离多达880簇,按照每簇大小为4KB计算,二者之间的物理距离实际相差了880×4×1024=3604480字节。
因此,将按照磁盘物理块之间的物理距离对磁盘物理块所对应的文件逻辑偏移块进行拆分,以缩小文件逻辑偏移块所对应的磁盘物理块之间的物理距离。例如,如图4b所示,文件逻辑偏移块401可以被拆分为两个,其中一个文件逻辑偏移块402对应的磁盘物理块404、405的磁盘物理位置分别为1280簇、1281簇,另一个文件逻辑偏移块403对应的磁盘物理块406、407的磁盘物理位置则分别为400簇、401簇。
需要说明的是,第一预取文件中的每个文件逻辑偏移块都会按照上述方法进行拆分,基于此,在对能够进行拆分的文件逻辑偏移块进行拆分之后,可能会存在文件逻辑偏移块所对应的磁盘物理块之间的物理距离较小的情况,因此,本实施例中,还将对拆分所得到的文件逻辑偏移块进行归并,以避免产生过多的文件逻辑偏移块,不利于提升磁盘利用率,同时还浪费用户设备的存储资源。
较优地,拆分所得到的文件逻辑偏移块按照预设物理距离进行归并,例如,预设物理距离为512M,若某两个拆分所得到的文件逻辑偏移块所对应的磁盘物理块之间的物理距离小于512M,则将该两个文件逻辑偏移块归并为一个文件逻辑偏移块。
步骤235,预判第二预取文件的磁盘物理位置的大小,根据预判结果将多个文件逻辑偏移块排序存储为第二预取文件。
用户设备的操作系统中预置有不同的预置接口函数,各预置接口函数的功能各不相同。例如,DeviceIoControl函数能够根据文件偏移量和文件大小获取该文件在磁盘上的物理存储位置信息,还能够对文件所要存储的磁盘物理位置的大小进行预判。
由此,通过调用DeviceIoControl函数对第二预取文件的磁盘物理位置进行预判,即可初步得到第二预取文件保存在用户设备中的磁盘物理位置的大小,即预判结果是该磁盘物理位置大或者该磁盘物理位置小。
若该磁盘物理位置大,则判定多个文件逻辑偏移块的存储顺序是按照其所对应的磁盘物理块的磁盘物理位置从高到低进行。
若该磁盘物理位置小,则判定多个文件逻辑偏移块的存储顺序是按照其所对应的磁盘物理块的磁盘物理位置从低到高进行。
请参阅图5,在一实施例中,步骤231包括以下步骤:
步骤2311,通过文件逻辑偏移块调用预置接口函数,得到文件逻辑偏移块在磁盘上的物理存储位置信息和簇信息。
如前所述,各预置接口函数的功能各不相同。例如,DeviceIoControl函数能够根据文件偏移量和文件大小获取该文件在磁盘上的物理存储位置信息,而GetDriverFreeSpace函数则可以根据文件偏移量和文件大小获取该文件在磁盘上的簇信息,本实施例并不以此为限。
具体地,文件逻辑偏移块是由文件偏移量和文件大小计算得到的,因此,通过文件逻辑偏移块即相应地得到文件偏移量和文件大小,进而通过输入前述信息以调用预置接口函数,得到文件逻辑偏移块在磁盘上的物理存储位置信息和簇信息。
其中,在NTFS磁盘文件系统,簇信息即为簇,簇的大小在格式化磁盘分区时可以手动设置。一般默认为8个扇区为1簇,由于每个扇区的容量为512字节,则每簇的实际大小为4KB。
物理存储位置信息包括VCN(虚拟簇号)和LCN(逻辑簇号),VCN是对某个文件中包含的所有簇进行顺序编号,LCN则是对整个磁盘分区中包含的所有簇进行顺序编号。简单地说,VCN用于表示某个文件的逻辑偏移位置,LCN则可以反映出某个文件的磁盘物理位置,VCN和LCN互为映射。
步骤2313,根据簇信息将物理存储位置信息转换为对应的逻辑偏移位置和物理偏移位置,按照逻辑偏移位置和物理偏移位置定位磁盘物理块。
在获取簇信息和物理存储位置信息之后,如图5a所示,物理存储位置信息将根据簇信息转换为对应的逻辑偏移位置和物理偏移位置。
步骤2315,将定位得到的磁盘物理块与文件逻辑偏移块建立对应关系。
通过逻辑偏移位置和物理偏移位置将能够定位得到磁盘中对应的磁盘物理块,又因为逻辑偏移位置和物理偏移位置是通过文件逻辑偏移块得到的,因此,基于逻辑偏移位置和物理偏移位置,文件逻辑偏移块和磁盘物理块之间建立起对应关系。
图6为现有技术中利用第一预取文件实现应用启动预取过程中磁盘寻道的示意图,图7为本发明中应用利用第二预取文件实现应用启动预取过程中磁盘寻道的示意图。通过对比可以清楚地得到,现有技术中的磁盘利用率为36.62%,磁盘读取时间为0.62s;本发明中的磁盘利用率为92.3%,磁盘读取时间为0.525s。也就是说,通过如上所述的各实施例中的方法,大距离磁盘寻道的次数大大减少了,磁盘利用率可以提升252%,磁盘读取时间可以提升15%。
请参阅图8,在一实施例中,一种预取文件处理装置,包括:文件块获取模块610、文件块排序模块630及文件保存模块650。
其中,文件块获取模块610用于应用程序安装包解压后,从应用程序安装包获取第一预取文件,由第一预取文件中得到多个文件逻辑偏移块。
文件块排序模块630用于对多个文件逻辑偏移块进行排序处理,形成磁盘物理位置连续的第二预取文件。
文件保存模块650用于保存第二预取文件,供完成安装的应用程序加载时读取。
在一实施例中,如上所述的装置还包括:安装包生成模块,用于打包第一预取文件和应用程序的其他应用文件,生成应用程序安装包。
请参阅图9,在一实施例中,如上所述的装置还包括:虚拟地址获取模块710及文件生成模块730。
其中,虚拟地址获取模块710用于获取应用程序的历史启动过程中发生的磁盘硬错误的虚拟地址信息。
文件生成模块730用于根据虚拟地址信息计算得到多个文件逻辑偏移块,合并多个文件逻辑偏移块得到第一预取文件。
请参阅图10,在一实施例中,文件块排序模块630包括:文件块对应单元631、文件块处理单元633及文件块排序单元635。
其中,文件块对应单元631用于通过文件逻辑偏移块在磁盘中定位磁盘物理块,并建立文件逻辑偏移块与磁盘物理块之间的对应关系。
文件块处理单元633用于按照磁盘物理块之间的物理距离对文件逻辑偏移块进行拆分归并。
文件块排序单元635用于预判第二预取文件的磁盘物理位置的大小,根据预判结果将多个文件逻辑偏移块排序存储为第二预取文件。
请参阅图11,在一实施例中,文件块对应单元631包括:信息获取单元6311、信息转换单元6313及对应单元6315。
其中,信息获取单元6311用于通过文件逻辑偏移块调用预置接口函数,得到文件逻辑偏移块在磁盘上的物理存储位置信息和簇信息。
信息转换单元6313用于根据簇信息将物理存储位置信息转换为对应的逻辑偏移位置和物理偏移位置,按照逻辑偏移位置和物理偏移位置定位磁盘物理块。
关系建立单元6315用于将定位得到的磁盘物理块与文件逻辑偏移块建立对应关系。
上述内容,仅为本发明的较佳实施例,并非用于限制本发明的实施方案,本领域普通技术人员根据本发明的主要构思和精神,可以十分方便地进行相应的变通或修改,故本发明的保护范围应以权利要求书所要求的保护范围为准。

Claims (9)

1.一种预取文件处理方法,其特征在于,包括:
应用程序安装包解压后,从所述应用程序安装包获取第一预取文件,由所述第一预取文件中得到多个文件逻辑偏移块;
根据所述多个文件逻辑偏移块所对应磁盘物理块的磁盘物理位置,对所述多个文件逻辑偏移块进行排序处理,形成磁盘物理位置连续的第二预取文件;及
保存所述第二预取文件,使完成安装的应用程序加载时按照连续的磁盘物理位置读取应用文件;
所述根据所述多个文件逻辑偏移块所对应磁盘物理块的磁盘物理位置,对所述多个文件逻辑偏移块进行排序处理,形成磁盘物理位置连续的第二预取文件的步骤包括:
通过所述文件逻辑偏移块在磁盘中定位磁盘物理块,并建立所述文件逻辑偏移块与磁盘物理块之间的对应关系;
按照所述磁盘物理块之间的物理距离对所述文件逻辑偏移块进行拆分归并;及
预判所述第二预取文件的磁盘物理位置的大小,根据预判结果将所述多个文件逻辑偏移块排序存储为所述第二预取文件。
2.如权利要求1所述的方法,其特征在于,所述应用程序安装包解压后,从所述应用程序安装包获取第一预取文件,由所述第一预取文件中得到多个文件逻辑偏移块的步骤之前,所述方法还包括:
打包所述第一预取文件和所述应用程序的其他应用文件,生成所述应用程序安装包。
3.如权利要求2所述的方法,其特征在于,所述打包所述第一预取文件和所述应用程序的其他应用文件,生成所述应用程序安装包的步骤之前,所述方法还包括:
获取所述应用程序的历史启动过程中发生的磁盘硬错误的虚拟地址信息;及
根据所述虚拟地址信息计算得到所述多个文件逻辑偏移块,合并所述多个文件逻辑偏移块得到所述第一预取文件。
4.如权利要求1所述的方法,其特征在于,所述通过所述文件逻辑偏移块在磁盘中定位磁盘物理块,并建立所述文件逻辑偏移块与磁盘物理块之间的对应关系的步骤包括:
通过所述文件逻辑偏移块调用预置接口函数,得到所述文件逻辑偏移块在所述磁盘上的物理存储位置信息和簇信息;
根据所述簇信息将所述物理存储位置信息转换为对应的逻辑偏移位置和物理偏移位置,按照所述逻辑偏移位置和物理偏移位置定位所述磁盘物理块;及
将定位得到的所述磁盘物理块与所述文件逻辑偏移块建立对应关系。
5.一种预取文件处理装置,其特征在于,包括:
文件块获取模块,用于应用程序安装包解压后,从所述应用程序安装包获取第一预取文件,由所述第一预取文件中得到多个文件逻辑偏移块;
文件块排序模块,用于根据所述多个文件逻辑偏移块所对应磁盘物理块的磁盘物理位置,对所述多个文件逻辑偏移块进行排序处理,形成磁盘物理位置连续的第二预取文件;及
文件保存模块,用于保存所述第二预取文件,供完成安装的应用程序加载时按照连续的磁盘物理位置读取应用文件;
所述文件块排序模块包括:
文件块对应单元,用于通过所述文件逻辑偏移块在磁盘中定位磁盘物理块,并建立所述文件逻辑偏移块与磁盘物理块之间的对应关系;
文件块处理单元,用于按照所述磁盘物理块之间的物理距离对所述文件逻辑偏移块进行拆分归并;及
文件块排序单元,用于预判所述第二预取文件的磁盘物理位置的大小,根据预判结果将所述多个文件逻辑偏移块排序存储为所述第二预取文件。
6.如权利要求5所述的装置,其特征在于,所述装置还包括:
安装包生成模块,用于打包所述第一预取文件和所述应用程序的其他应用文件,生成所述应用程序安装包。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
虚拟地址获取模块,用于获取所述应用程序的历史启动过程中发生的磁盘硬错误的虚拟地址信息;及
文件生成模块,用于根据所述虚拟地址信息计算得到所述多个文件逻辑偏移块,合并所述多个文件逻辑偏移块得到所述第一预取文件。
8.如权利要求5所述的装置,其特征在于,所述文件块对应单元包括:
信息获取单元,用于通过所述文件逻辑偏移块调用预置接口函数,得到所述文件逻辑偏移块在所述磁盘上的物理存储位置信息和簇信息;
信息转换单元,用于根据所述簇信息将所述物理存储位置信息转换为对应的逻辑偏移位置和物理偏移位置,按照所述逻辑偏移位置和物理偏移位置定位所述磁盘物理块;及
关系建立单元,用于将定位得到的所述磁盘物理块与所述文件逻辑偏移块建立对应关系。
9.一种用户设备,其特征在于,所述设备包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如权利要求1至4任一项所述的方法。
CN201610042031.2A 2016-01-21 2016-01-21 预取文件处理方法及装置 Active CN106991058B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610042031.2A CN106991058B (zh) 2016-01-21 2016-01-21 预取文件处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610042031.2A CN106991058B (zh) 2016-01-21 2016-01-21 预取文件处理方法及装置

Publications (2)

Publication Number Publication Date
CN106991058A CN106991058A (zh) 2017-07-28
CN106991058B true CN106991058B (zh) 2020-06-26

Family

ID=59414471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610042031.2A Active CN106991058B (zh) 2016-01-21 2016-01-21 预取文件处理方法及装置

Country Status (1)

Country Link
CN (1) CN106991058B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109471671B (zh) * 2017-09-06 2023-03-24 武汉斗鱼网络科技有限公司 一种程序冷启动方法和系统
US11416263B1 (en) * 2021-02-12 2022-08-16 Western Digital Technologies, Inc. Boosted boot procedure by background re-arrangement of read patterns

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
JP2009211233A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
CN101661486B (zh) * 2008-08-28 2012-11-07 国际商业机器公司 对包含虚拟机的宿主机硬盘进行碎片整理的方法和系统
CN103425502B (zh) * 2012-05-15 2015-09-16 腾讯科技(深圳)有限公司 一种操作系统的预取启动方法和装置
CN103914318A (zh) * 2013-01-04 2014-07-09 腾讯科技(深圳)有限公司 程序启动的方法和装置

Also Published As

Publication number Publication date
CN106991058A (zh) 2017-07-28

Similar Documents

Publication Publication Date Title
KR101253012B1 (ko) 이종 플랫폼에서 포인터를 공유시키는 방법 및 장치
JP6506412B2 (ja) アプリケーションロード方法及び装置
US11294675B2 (en) Writing prefetched data into intra-core caches of cores identified by prefetching instructions
US20130191528A1 (en) Automatically selecting appropriate platform to run application in cloud computing environment
WO2018040270A1 (zh) 在Windows系统中加载Linux系统ELF文件的方法及装置
JP6974510B2 (ja) データを処理するための方法、装置、デバイス及び媒体
CN107632779B (zh) 数据处理方法和装置、服务器
CN106991058B (zh) 预取文件处理方法及装置
EP3872629B1 (en) Method and apparatus for executing instructions, device, and computer readable storage medium
CN109271164B (zh) 用于存储数据的方法和系统、以及存储介质
US20180052776A1 (en) Shared Virtual Index for Memory Object Fusion in Heterogeneous Cooperative Computing
CN109840151B (zh) 一种用于多核处理器的负载均衡方法和装置
CN107276998B (zh) 一种基于OpenSSL的性能优化方法及装置
US10824338B2 (en) Using variable sized uncompressed data blocks to address file positions when simultaneously compressing multiple blocks
US9405470B2 (en) Data processing system and data processing method
CN112654965A (zh) 动态模块的外部分页和交换
US20160292012A1 (en) Method for exploiting parallelism in task-based systems using an iteration space splitter
CN107562533B (zh) 一种数据加载处理方法及装置
US11573899B1 (en) Transparent interleaving of compressed cache lines
US20220405111A1 (en) Improving memory access handling for nested virtual machines
CN111708715B (zh) 内存分配方法、内存分配装置及终端设备
JP6519228B2 (ja) データ配置決定装置、データ配置決定プログラム及びデータ配置決定方法
CN114385552A (zh) 一种内存中文件页的页整合方法及装置
US11989420B2 (en) Memory allocation method and apparatus, electronic device, and storage medium
CN108292265B (zh) 对高性能存储器的存储器管理

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant