CN114625433B - Application startup method and system - Google Patents
Application startup method and system Download PDFInfo
- Publication number
- CN114625433B CN114625433B CN202011364872.8A CN202011364872A CN114625433B CN 114625433 B CN114625433 B CN 114625433B CN 202011364872 A CN202011364872 A CN 202011364872A CN 114625433 B CN114625433 B CN 114625433B
- Authority
- CN
- China
- Prior art keywords
- application
- data
- application program
- starting
- startup
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本公开实施例提供一种应用程序启动方法和系统,该方法包括:接收用户对目标应用程序输入的启动指令;根据所述启动指令在页高速缓冲存储器中读取所述目标应用程序需要访问的启动数据,根据所述启动数据启动所述目标应用程序,所述目标应用程序需要访问的启动数据是预先采集所述目标应用程序在启动阶段的输入/输出操作数据并存储在所述页高速缓冲存储器中的。本公开实施例能够提高应用程序的启动速度,从而提升用户使用体验。
The disclosed embodiment provides an application startup method and system, the method comprising: receiving a startup instruction input by a user for a target application; reading startup data that the target application needs to access in a page cache memory according to the startup instruction, and starting the target application according to the startup data, wherein the startup data that the target application needs to access is input/output operation data of the target application in the startup phase collected in advance and stored in the page cache memory. The disclosed embodiment can improve the startup speed of the application, thereby improving the user experience.
Description
技术领域Technical Field
本公开实施例涉及计算机技术领域,尤其涉及一种应用程序启动方法和系统。The embodiments of the present disclosure relate to the field of computer technology, and more particularly to a method and system for starting an application program.
背景技术Background technique
随着互联网技术的发展,特别是移动互联网时代的来临,推动了终端上各种应用程序的应用与发展,人们除了对应用程序的功能要求越来越多,对应用程序的启动和运行速度要求也越来越高。With the development of Internet technology, especially the advent of the mobile Internet era, the application and development of various applications on terminals have been promoted. In addition to more and more functional requirements for applications, people also have higher and higher requirements for the startup and running speed of applications.
相关技术中,应用程序的启动过程中,开始运行、输入/输出(Input/Output,IO)请求、休眠和数据准备就绪这几个阶段均会占用一定时间。其中,IO请求是当终端设备上的应用程序启动时,应用程序需要向内核请求一些启动数据,接收到内核返回的数据后再进行下一步操作。In the related art, during the startup of an application, the stages of starting to run, input/output (IO) request, sleep and data preparation all take a certain amount of time. Among them, IO request means that when an application on a terminal device is started, the application needs to request some startup data from the kernel, and then proceed to the next step after receiving the data returned by the kernel.
然而,当应用程序启动时,经常会出现启动阻塞输入/输出(Input/Output,IO)的问题,比如,向内核请求接口数据时,如果该接口数据此时正在被其他程序占用没有被释放,则当前启动的应用程序无法快速接收到内核返回的接口数据,当前应用程序就会一直处于等待的状态,无法继续进行下一步操作,从而导致应用程序启动速度慢,影响用户体验。However, when an application is started, the problem of blocking input/output (IO) often occurs. For example, when requesting interface data from the kernel, if the interface data is currently occupied by other programs and has not been released, the currently started application cannot quickly receive the interface data returned by the kernel. The current application will remain in a waiting state and cannot proceed to the next step, resulting in slow application startup and affecting user experience.
发明内容Summary of the invention
本公开实施例提供一种应用程序启动方法和系统,以克服现有技术中应用程序在启动阶段出现IO阻塞,导致启动速度慢的技术问题。The embodiments of the present disclosure provide an application startup method and system to overcome the technical problem in the prior art that an application is blocked during startup, resulting in a slow startup speed.
第一方面,本公开实施例提供一种应用程序启动方法,包括:In a first aspect, an embodiment of the present disclosure provides a method for starting an application program, including:
接收用户对目标应用程序输入的启动指令;Receiving a start instruction input by a user for a target application;
根据所述启动指令在页高速缓冲存储器中读取所述目标应用程序需要访问的启动数据,根据所述启动数据启动所述目标应用程序,所述目标应用程序需要访问的启动数据是预先采集所述目标应用程序在启动阶段的输入/输出操作数据并存储在所述页高速缓冲存储器中的。The startup data that the target application needs to access is read from the page cache memory according to the startup instruction, and the target application is started according to the startup data. The startup data that the target application needs to access is the input/output operation data of the target application in the startup phase collected in advance and stored in the page cache memory.
第二方面,本公开实施例提供一种应用程序启动系统,包括:In a second aspect, an embodiment of the present disclosure provides an application startup system, including:
接收模块,用于接收用户对目标应用程序输入的启动指令;A receiving module, used for receiving a start instruction input by a user for a target application program;
启动模块,用于根据所述启动指令在页高速缓冲存储器中读取所述目标应用程序需要访问的启动数据,根据所述启动数据启动所述目标应用程序,所述目标应用程序需要访问的启动数据是预先采集所述目标应用程序在启动阶段的输入/输出操作数据并存储在所述页高速缓冲存储器中的。A startup module is used to read the startup data that the target application needs to access in the page cache memory according to the startup instruction, and start the target application according to the startup data. The startup data that the target application needs to access is the input/output operation data of the target application in the startup phase collected in advance and stored in the page cache memory.
第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;In a third aspect, an embodiment of the present disclosure provides an electronic device, including: at least one processor and a memory;
所述存储器存储计算机执行指令;The memory stores computer-executable instructions;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的应用程序启动方法。The at least one processor executes the computer-executable instructions stored in the memory, so that the at least one processor executes the application startup method described in the first aspect and various possible designs of the first aspect.
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的应用程序启动方法。In a fourth aspect, an embodiment of the present disclosure provides a computer-readable storage medium, in which computer execution instructions are stored. When a processor executes the computer execution instructions, the application startup method described in the first aspect and various possible designs of the first aspect is implemented.
本实施例提供一种应用程序启动方法和系统,该方法通过预先采集目标应用程序在启动阶段的IO操作数据并存储在页高速缓冲存储器中,当接收到用户对该目标应用程序输入的启动指令时,直接在页高速缓冲存储器中读取目标应用程序需要访问的启动数据,避免了在应用程序启动时在磁盘直接读取数据,解决了启动阻塞IO的问题,加快了应用程序的启动速度,从而提高用户体验效果。The present embodiment provides an application startup method and system. The method collects IO operation data of the target application in the startup phase in advance and stores it in a page cache memory. When a startup instruction input by the user for the target application is received, the startup data that the target application needs to access is directly read from the page cache memory, thereby avoiding direct reading of data from the disk when the application is started, solving the problem of startup blocking IO, speeding up the startup speed of the application, and improving the user experience.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the embodiments of the present disclosure or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present disclosure. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.
图1为现有技术中应用程序启动时各状态耗时占比示意图;FIG1 is a schematic diagram showing the time consumption ratio of each state when an application is started in the prior art;
图2为本公开实施例提供的应用程序启动方法的应用场景图一;FIG. 2 is an application scenario diagram 1 of the application startup method provided by an embodiment of the present disclosure;
图3为本公开实施例提供的应用程序启动方法的流程示意图一;FIG3 is a flowchart of a method for starting an application program provided in an embodiment of the present disclosure;
图4为本公开实施例提供的应用程序启动方法的流程示意图二;FIG4 is a second flow chart of the method for starting an application program provided in an embodiment of the present disclosure;
图5为本公开实施例提供的应用程序启动方法的应用场景图二;FIG5 is a second application scenario diagram of the application startup method provided by an embodiment of the present disclosure;
图6a为本公开实施例提供的应用程序启动方法的应用场景图三;FIG6a is a third application scenario diagram of the application startup method provided by an embodiment of the present disclosure;
图6b为本公开实施例提供的应用程序启动方法的应用场景图四;FIG6b is a fourth application scenario diagram of the application startup method provided by an embodiment of the present disclosure;
图6c为本公开实施例提供的应用程序启动方法的应用场景图五;FIG6c is a fifth application scenario diagram of the application startup method provided by an embodiment of the present disclosure;
图7为本公开实施例提供的应用程序启动系统的结构示意图;FIG7 is a schematic diagram of the structure of an application startup system provided by an embodiment of the present disclosure;
图8为本公开实施例提供的应用程序启动系统中的预读取模块的结构示意图;FIG8 is a schematic diagram of the structure of a pre-reading module in an application startup system provided by an embodiment of the present disclosure;
图9为本公开实施例提供的电子设备的硬件结构示意图。FIG. 9 is a schematic diagram of the hardware structure of an electronic device provided in an embodiment of the present disclosure.
具体实施方式Detailed ways
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。In order to make the purpose, technical solution and advantages of the embodiments of the present disclosure clearer, the technical solution in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are part of the embodiments of the present disclosure, not all of the embodiments. Based on the embodiments in the present disclosure, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present disclosure.
相关技术中,应用程序的启动过程中,包括开始运行、输入/输出(Input/Output,IO)请求、休眠和数据准备就绪这几个阶段。且这些阶段都会消耗一定的时间时间。其中,IO请求是指当终端设备上的应用程序启动时,应用程序需要向内核请求一些启动数据,接收到内核返回的数据后再进行下一步操作。In the related art, the startup process of an application includes the following stages: start running, input/output (IO) request, sleep, and data readiness. All of these stages will take a certain amount of time. Among them, IO request means that when an application on a terminal device is started, the application needs to request some startup data from the kernel, and then proceed to the next step after receiving the data returned by the kernel.
然而,当应用程序启动时,经常会出现启动阻塞IO的问题,比如,向内核请求接口数据时,如果该接口数据此时正在被其他程序占用没有被释放,则当前启动的应用程序无法快速接收到内核返回的接口数据,当前应用程序就会一直处于等待的状态,无法继续进行下一步操作,因此可能会导致IO请求过程消耗的时间过长。从而导致应用程序启动速度慢,影响用户体验。比如,如图1所示,短视频应用程序在冷启动时CPU的各状态耗时占比中,运行状态(Running)占44.7%,IO操作等待状态(IO Wait)占38.9%,睡眠状态(Sleep)占11.7%,准备就绪状态(Runnable)占4%。由此可见,在应用程序的启动时,IO阻塞耗时较长,非常影响应用程序的启动速度。However, when the application starts, the problem of blocking IO at startup often occurs. For example, when requesting interface data from the kernel, if the interface data is currently occupied by other programs and has not been released, the currently started application cannot quickly receive the interface data returned by the kernel, and the current application will always be in a waiting state and cannot proceed to the next step. Therefore, it may cause the IO request process to consume too much time. As a result, the application starts slowly and affects the user experience. For example, as shown in Figure 1, when the short video application is cold started, the running state (Running) accounts for 44.7%, the IO operation waiting state (IO Wait) accounts for 38.9%, the sleep state (Sleep) accounts for 11.7%, and the ready state (Runnable) accounts for 4%. It can be seen that when the application is started, IO blocking takes a long time, which greatly affects the startup speed of the application.
针对此缺陷,本公开实施例提供的技术方案的主要构思为:在应用程序启动前,预先采集启动阶段的IO操作数据,根据IO操作数据生成预读取文件列表,预读取文件列表中包含应用程序在启动阶段的IO操作中需要访问的文件的文件信息,根据预读取列表中的文件信息获取应用程序在启动阶段需要的启动数据,将启动数据预读取至页高速缓冲存储器中,当用户点击应用程序图标启动该应用程序时,中央处理器(Central Processing Unit,CPU)直接在页高速缓冲存储器中读取启动数据,从而避免了从磁盘IO读取操作,解决了启动IO阻塞问题,减少了应用程序在启动阶段的IO请求过程中耗费时长,从而提高了应用程序的启动速度。In response to this defect, the main idea of the technical solution provided by the embodiment of the present disclosure is: before the application is started, the IO operation data of the startup phase is collected in advance, and a pre-read file list is generated according to the IO operation data, the pre-read file list contains file information of files that the application needs to access in the IO operation of the startup phase, and the startup data required by the application in the startup phase is obtained according to the file information in the pre-read list, and the startup data is pre-read into the page cache memory. When the user clicks the application icon to start the application, the central processing unit (CPU) directly reads the startup data in the page cache memory, thereby avoiding the IO reading operation from the disk, solving the startup IO blocking problem, and reducing the time spent on the IO request process of the application in the startup phase, thereby improving the startup speed of the application.
图2为本公开实施例提供的应用程序启动方法的应用场景图。FIG. 2 is an application scenario diagram of the application startup method provided in an embodiment of the present disclosure.
如图2所示,当用户想要启动应用程序时,向该应用程序对应的图标执行相应操作(如图2中的a所示),比如,单击、双击、滑动、长按等操作,设备的CPU根据感应到的用户进行的相关操作启动该应用程序,进入该应用程序的首界面(如图2中的b所示)。As shown in Figure 2, when the user wants to start an application, he performs a corresponding operation on the icon corresponding to the application (as shown in a in Figure 2), such as single-click, double-click, slide, long press, etc. The CPU of the device starts the application according to the relevant operations sensed by the user and enters the homepage of the application (as shown in b in Figure 2).
图3为本公开实施例提供的应用程序启动方法的流程示意图一,本公开实施例提供的方法的可应用于手机、平板、可穿戴设备和虚拟现实设备等各种终端设备。FIG3 is a flowchart diagram 1 of the application startup method provided in an embodiment of the present disclosure. The method provided in an embodiment of the present disclosure can be applied to various terminal devices such as mobile phones, tablets, wearable devices, and virtual reality devices.
如图3所示,本公开实施例提供的方法可以包括以下步骤。As shown in FIG3 , the method provided by the embodiment of the present disclosure may include the following steps.
S301,接收用户对目标应用程序输入的启动指令。S301, receiving a start instruction input by a user for a target application.
具体的,当用户想要打开目标应用程序时,在设备的显示屏幕上操作目标应用程序对应的显示图标,其中的操作可以但不限于是单击、双击、滑动、长按和悬停触摸等任何可以启动该目标应用程序的操作。Specifically, when the user wants to open the target application, he operates the display icon corresponding to the target application on the display screen of the device, where the operation may be but is not limited to single-click, double-click, slide, long press, hover touch, or any other operation that can start the target application.
S302,根据所述启动指令在页高速缓冲存储器中读取目标应用程序需要访问的启动数据,根据所述启动数据启动所述目标应用程序,所述目标应用程序需要访问的启动数据是预先采集所述目标应用程序在启动阶段的IO操作数据并存储在所述页高速缓冲存储器中的。S302, reading the startup data that the target application needs to access in the page cache memory according to the startup instruction, and starting the target application according to the startup data, wherein the startup data that the target application needs to access is the IO operation data of the target application in the startup phase collected in advance and stored in the page cache memory.
具体的,预先采集目标应用程序在启动阶段的IO操作数据,并将IO操作数据预读取至页高速缓冲存储器中。设备的CPU实时检测用户的操作,当接收到目标应用程序的启动指令时,则在页高速缓冲存储器中直接读取IO操作数据启动目标应用程序。Specifically, the IO operation data of the target application in the startup phase is collected in advance, and the IO operation data is pre-read into the page cache memory. The CPU of the device detects the user's operation in real time, and when receiving the startup instruction of the target application, it directly reads the IO operation data in the page cache memory to start the target application.
本公开实施例中,通过预先采集目标应用程序在启动阶段的IO操作数据并存储在页高速缓冲存储器中,当接收到用户该目标应用程序的启动指令时,直接在页高速缓冲存储器中读取目标应用程序需要访问的数据,避免了在应用程序启动时在磁盘直接读取数据,解决了启动阻塞IO的问题,加快了应用程序的启动速度,从而提高用户体验效果。In the disclosed embodiment, by pre-collecting the IO operation data of the target application in the startup phase and storing it in the page cache memory, when the user's startup instruction for the target application is received, the data that the target application needs to access is directly read from the page cache memory, avoiding direct reading of data from the disk when the application starts, solving the problem of startup blocking IO, and accelerating the startup speed of the application, thereby improving the user experience.
图4为本公开实施例提供的应用程序启动方法的流程示意图二,本实施例在图3所示实施例的基础上,对应用程序启动方法的完整流程进行详细说明。FIG4 is a second flow chart of the application startup method provided in an embodiment of the present disclosure. Based on the embodiment shown in FIG3 , this embodiment describes in detail the complete flow of the application startup method.
如图4所示,本公开实施例提供的方法可以包括以下步骤。As shown in FIG. 4 , the method provided by the embodiment of the present disclosure may include the following steps.
S401,根据获取到的至少一个应用程序在启动阶段的IO操作数据,生成预读取文件列表,所述预读取文件列表包含所述至少一个应用程序在启动阶段需要访问的文件信息。S401, generating a pre-read file list according to the acquired IO operation data of at least one application in the startup phase, wherein the pre-read file list includes file information that the at least one application needs to access in the startup phase.
具体的,可以通过追踪工具ftrace来采集应用程序在启动阶段的IO操作数据。Specifically, the tracing tool ftrace can be used to collect IO operation data of the application during the startup phase.
一些实施例中,IO操作数据中包含应用程序在启动阶段的IO操作需要访问的文件的文件信息,文件信息包括文件标识(文件名称)、文件偏移量以及数据长度。示例性的,通过追踪工具采集得到的应用程序在启动阶段的IO操作数据可以是:In some embodiments, the IO operation data includes file information of files that need to be accessed by the IO operation of the application at the startup stage, and the file information includes file identifier (file name), file offset, and data length. Exemplarily, the IO operation data of the application at the startup stage collected by the tracking tool may be:
Tracing_mark_write:B|31022|read:/app/com.ss.android.ugc.aweme-IUyTG1jJ4wEJCV_-PkexLQ==/oat/arm/base.odex,offset:606208,size:69632。Tracing_mark_write:B|31022|read:/app/com.ss.android.ugc.aweme-IUyTG1jJ4wEJCV_-PkexLQ==/oat/arm/base.odex, offset:606208, size:69632.
其中,IO操作数据中的“/app/com.ss.android.ugc.aweme-IUyTG1jJ4wEJCV_-PkexLQ==/oat/arm/base.odex”为文件名称(文件标识);“odex”表示该文件为基于vdex生成的可执行二进制码文件;“offset”表示文件偏移量;“size”表示数据长度。该IO操作数据中,文件偏移量为606208字节;数据长度为69632字节。Among them, "/app/com.ss.android.ugc.aweme-IUyTG1jJ4wEJCV_-PkexLQ==/oat/arm/base.odex" in the IO operation data is the file name (file identifier); "odex" indicates that the file is an executable binary code file generated based on vdex; "offset" indicates the file offset; "size" indicates the data length. In the IO operation data, the file offset is 606208 bytes; the data length is 69632 bytes.
具体的,提取应用程序在启动阶段的所有IO操作数据中的文件名称、文件偏移量以及数据长度等这些文件信息,然后生成预读取文件列表,预读取文件列表中包含至少一个应用程序在启动阶段的所有IO操作需要访问的文件名称、文件偏移量和数据长度。Specifically, file information such as file name, file offset, and data length are extracted from all IO operation data of the application during the startup phase, and then a pre-read file list is generated. The pre-read file list contains the file name, file offset, and data length that at least one application needs to access for all IO operations during the startup phase.
一些实施例中,应用程序在启动阶段的IO操作需要访问的文件除了上述示例中的资源文件apk外,还可能包含可执行的二进制文件vdex、基于vdex生成的可执行二进制码文件odex、基于art生成的可执行二进制码文件art以及虚拟机使用的oat文件。In some embodiments, the files that the application needs to access during the IO operation of the startup phase may include, in addition to the resource file apk in the above example, an executable binary file vdex, an executable binary code file odex generated based on vdex, an executable binary code file art generated based on art, and an oat file used by the virtual machine.
在本公开实施例一种可能的情况下,生成的预读取文件列表如表1所示。In one possible case of the embodiment of the present disclosure, the generated pre-read file list is shown in Table 1.
表1Table 1
本实施例中,表1中仅包含一个应用程序在启动阶段的IO操作数据对应的几种文件信息,包含apk、adex、odex、art和oat这五种类型的文件信息,在具体实施时,一个应用程序在启动阶段的IO操作数据对应的文件还可能更多,此处不做具体限定。并且,对于不同的应用程序,其在各自启动阶段的IO操作数据也不相同。In this embodiment, Table 1 only includes several types of file information corresponding to the IO operation data of an application at the startup stage, including five types of file information: apk, adex, odex, art, and oat. In specific implementation, the IO operation data of an application at the startup stage may correspond to more files, which are not specifically limited here. Moreover, for different applications, the IO operation data at their respective startup stages are also different.
S402,根据所述文件信息获取所述至少一个应用程序对应的启动数据,并将所述启动数据预读取至所述页高速缓冲存储器中。S402: Acquire startup data corresponding to the at least one application according to the file information, and pre-read the startup data into the page cache memory.
其中,文件信息包括文件名称、文件偏移量和数据长度。The file information includes the file name, file offset and data length.
具体的,通过文件名称获取相应的文件;根据所述文件偏移量,确定待读取数据在所述文件中的起始位置;从所述起始位置开始,读取所述数据长度的数据,并将读取的数据加载至所述页高速缓冲存储器中。Specifically, the corresponding file is obtained by the file name; the starting position of the data to be read in the file is determined according to the file offset; starting from the starting position, the data of the data length is read, and the read data is loaded into the page cache memory.
示例性的,参考表1,根据文件名称“/app/com.ss.android.ugc.aweme-IUyTG1jJ4wEJCV_-PkexLQ==/oat/arm/base.apk”获取到资源文件,文件偏移量为652397,数据长度为12845。假设该资源文件中包含70000字节的数据,则将第652397字节处作为起始位置,读取12845字节的数据,并将读取到的数据存储至页高速缓冲存储器中。For example, referring to Table 1, the resource file is obtained according to the file name "/app/com.ss.android.ugc.aweme-IUyTG1jJ4wEJCV_-PkexLQ==/oat/arm/base.apk", the file offset is 652397, and the data length is 12845. Assuming that the resource file contains 70000 bytes of data, the 652397th byte is used as the starting position, 12845 bytes of data are read, and the read data is stored in the page cache memory.
S403,根据接收到的目标应用程序的启动指令在页高速缓冲存储器中读取目标应用程序需要访问的启动数据,根据所述启动数据启动所述目标应用程序。S403, reading the startup data that the target application needs to access from the page cache memory according to the received startup instruction of the target application, and starting the target application according to the startup data.
具体的,预先将每个应用程序和启动数据的对应关系也存储在页高速缓冲存储器中,当接收到目标应用程序的启动指令时,解析所述启动指令得到目标应用程序的标识,然后根据应用程序标识和启动数据的对应关系,在页高速缓冲存储器中读取目标应用程序的标识对应的启动数据。Specifically, the correspondence between each application and the startup data is also stored in the page cache memory in advance. When the startup instruction of the target application is received, the startup instruction is parsed to obtain the identifier of the target application, and then according to the correspondence between the application identifier and the startup data, the startup data corresponding to the identifier of the target application is read in the page cache memory.
本公开实施例中,通过预先采集目标应用程序在启动阶段的IO操作数据并根据IO操作数据生成预读取文件列表,通过预读取文件列表来提前将列表中各个类型的文件信息对应的数据加载到存储在页高速缓冲存储器中,当接收到用户该目标应用程序的启动指令时,直接在页高速缓冲存储器中读取目标应用程序需要访问的数据,避免了在应用程序启动时在磁盘直接读取数据,解决了启动阻塞IO的问题,加快了应用程序的启动速度,从而提高用户体验效果。In the disclosed embodiment, the IO operation data of the target application in the startup phase is collected in advance and a pre-read file list is generated based on the IO operation data. The pre-read file list is used to load the data corresponding to each type of file information in the list into a page cache memory in advance. When a startup instruction of the target application is received from the user, the data that the target application needs to access is directly read from the page cache memory, thereby avoiding direct reading of data from the disk when the application is started, solving the problem of startup blocking IO, and accelerating the startup speed of the application, thereby improving the user experience.
为了更清楚的理解本申请,下面结合具体的应用场景来对应用程序启动方法中的预读取列表的生成进行详细描述。In order to have a clearer understanding of the present application, the generation of the pre-read list in the application startup method is described in detail below in combination with a specific application scenario.
参见图5,在一种可能的实施例中,生成的预读取文件列表不区分终端设备,即图4所述实施例提供的方法中的至少一个应用程序为多个终端设备中安装的应用程序,最终生成一个预读取文件列表,该预读取文件列表中包含多个终端设备中安装的所有应用程序在启动阶段的IO操作中需要访问的文件信息,使得该预读取文件列表可以在多个终端设备中通用。Referring to FIG. 5 , in a possible embodiment, the generated pre-read file list does not distinguish between terminal devices, that is, at least one application in the method provided in the embodiment described in FIG. 4 is an application installed in multiple terminal devices, and ultimately a pre-read file list is generated, which includes file information that all applications installed in multiple terminal devices need to access during IO operations in the startup phase, so that the pre-read file list can be used universally in multiple terminal devices.
具体的,获取每个终端设备中的每个应用程序在启动阶段的IO操作数据,将每个终端设备中所有应用程序在启动阶段的IO操作数据进行集合,并删除多个终端设备中重复的应用程序对应的IO操作数据,最终生成多个终端设备通用的预读取文件列表,并将该预读取文件列表存储在多个终端设备的存储器中。Specifically, the IO operation data of each application in each terminal device during the startup phase is obtained, the IO operation data of all applications in each terminal device during the startup phase are aggregated, and the IO operation data corresponding to the duplicate applications in multiple terminal devices are deleted, and finally a pre-read file list common to multiple terminal devices is generated, and the pre-read file list is stored in the memory of multiple terminal devices.
示例性的,如图5所示,假设终端设备1中安装有应用程序A、应用程序B和应用程序C;终端设备2中安装有应用程序C和应用程序D;终端设备3中安装有应用程序D和应用程序E。则终端设备1中的应用程序C和终端设备2中的应用程序C对应的IO操作数据重复,删除一个应用程序C在启动阶段的IO操作数据。同理,删除一个应用程序D在启动阶段的IO操作数据。最终生成的预读取文件列表中的具体信息如表2所示,其中包含应用程序A、应用程序B、应用程序C、应用程序D和应用程序E各自在启动阶段的IO操作数据。Exemplarily, as shown in FIG5 , it is assumed that application A, application B, and application C are installed in terminal device 1; application C and application D are installed in terminal device 2; and application D and application E are installed in terminal device 3. Then the IO operation data corresponding to application C in terminal device 1 and application C in terminal device 2 are repeated, and the IO operation data of application C in the startup phase is deleted. Similarly, the IO operation data of application D in the startup phase is deleted. The specific information in the final generated pre-read file list is shown in Table 2, which contains the IO operation data of application A, application B, application C, application D, and application E in the startup phase.
表2Table 2
需要说明的是,为了便于描述,本实施例提供的表2中每个应用程序在启动阶段的IO操作需要访问的文件类型仅列举了apk和oat两种,但在具体实施时还有可能包含如表1中所示的其他几种文件类型,此处不再一一列举。It should be noted that, for the sake of ease of description, the file types that need to be accessed by each application in the IO operation of the startup phase in Table 2 provided in this embodiment only list two types, apk and oat. However, in the specific implementation, it may also include several other file types as shown in Table 1, which are not listed one by one here.
进一步的,生成多个终端设备通用的预读取文件列表后,每个终端设备的存储器中均存储该预读取文件列表,每个终端设备根据该预读取文件列表中包含的文件信息,获取安装的应用程序在启动阶段的IO操作需要访问的启动数据,并将启动数据存储在终端设备的页高速缓冲存储器中。Furthermore, after generating a pre-read file list common to multiple terminal devices, the pre-read file list is stored in the memory of each terminal device. Each terminal device obtains the startup data that the installed application needs to access during the IO operation of the startup phase based on the file information contained in the pre-read file list, and stores the startup data in the page cache memory of the terminal device.
本实施例中,生成的预读取文件列表可以在多个终端设备中通用,仅仅需要一个终端设备生成预读取文件列表,其他终端设备都可以直接使用该预读取文件列表,虽然在一定程度上提升了通用性,但是个性化程度较低,预读取文件列表中可能存在终端设备中为安装的应用程序对应的启动阶段需要访问的文件信息。并且,由于预读取文件列表中包含的文件信息适用于多个终端设备,因此,预读取文件列表中包含的文件信息也较多,占用终端设备的存储空间较大,终端设备需要在大量的文件信息中检索待启动应用程序在启动阶段需要访问的文件信息,消耗的时间也比较长。In this embodiment, the generated pre-read file list can be used in multiple terminal devices. Only one terminal device needs to generate the pre-read file list, and other terminal devices can directly use the pre-read file list. Although the universality is improved to a certain extent, the degree of personalization is low. The pre-read file list may contain file information that needs to be accessed during the startup phase of the application installed in the terminal device. In addition, since the file information included in the pre-read file list is applicable to multiple terminal devices, the file information included in the pre-read file list is also large, which occupies a large storage space of the terminal device. The terminal device needs to retrieve the file information that needs to be accessed during the startup phase of the application to be started from a large amount of file information, which consumes a relatively long time.
在另一种可能的实施例中,针对不同的终端设备,还可以生成个性化的预读取文件列表,即图4所述实施例提供的方法中的至少一个应用程序为一个终端设备中安装的应用程序,最终每个终端设备对应一个预读取文件列表,预读取文件列表中包含对应的终端设备中安装的至少一个应用程序在启动阶段的IO操作中需要访问的文件信息。In another possible embodiment, a personalized pre-read file list can also be generated for different terminal devices, that is, at least one application in the method provided in the embodiment described in Figure 4 is an application installed in a terminal device, and ultimately each terminal device corresponds to a pre-read file list, which contains file information that needs to be accessed by at least one application installed in the corresponding terminal device during the IO operation in the startup phase.
示例性的,如图6a所示,终端设备1中安装有应用程序A、应用程序B和应用程序C,终端设备1获取这三个应用程序在启动阶段的IO操作数据,并根据IO操作数据生成终端设备1对应的预读取文件列表,该预读取文件列表中包括应用程序A、应用程序B和应用程序C各自在启动阶段的IO操作中需要访问的文件信息。根据预读取文件列表中每个应用程序对应的文件信息,获取每个应用程序在启动阶段需要的启动数据,将启动数据存储在终端设备1的页高速缓冲存储器中,当用点击终端设备1中安装的应用程序A、应用程序B和应用程序C中的任意一个应用程序时,直接在页高速缓冲存储器中读取相应的启动数据。Exemplarily, as shown in FIG6a, application A, application B and application C are installed in terminal device 1, and terminal device 1 obtains IO operation data of these three applications in the startup phase, and generates a pre-read file list corresponding to terminal device 1 according to the IO operation data, and the pre-read file list includes file information that each of application A, application B and application C needs to access in the IO operation in the startup phase. According to the file information corresponding to each application in the pre-read file list, the startup data required by each application in the startup phase is obtained, and the startup data is stored in the page cache memory of terminal device 1. When the user clicks any one of application A, application B and application C installed in terminal device 1, the corresponding startup data is directly read in the page cache memory.
同理,如图6b所示,终端设备2中安装有应用程序C和应用程序D,则终端设备2对应生成的预读取文件列表中包含应用程序C和应用程序D在启动阶段的IO操作中需要访问的文件信息。Similarly, as shown in FIG6b, the terminal device 2 has application C and application D installed, and the corresponding pre-read file list generated by the terminal device 2 includes file information that the application C and application D need to access in the IO operation of the startup phase.
本实施例中,针对不同的终端设备,个性化的生成相应的预读取文件列表,通过预读取文件列表,将应用程序在启动阶段的启动数据预先加载至页高速缓冲存储器中,既能够保证应用程序的启动速度,还能够减少预读取文件列表占用的存储空间。In this embodiment, a corresponding pre-read file list is generated for different terminal devices in a personalized manner. Through the pre-read file list, the startup data of the application during the startup phase is pre-loaded into the page cache memory, which can not only ensure the startup speed of the application, but also reduce the storage space occupied by the pre-read file list.
在本实施例一种可能的情况下,针对每个终端设备中的不同应用程序,还可以生成多个预读取文件列表,每个预读取文件列表中包含一个应用程序在启动阶段需要访问的文件信息。示例性的,如图6c所示,终端设备1中的应用程序A、应用程序B和应用程序C分别对应三个预读取文件列表。本实施例中,通过针对终端设备中的不同应用程序个性化生成不同的预读取文件列表,避免了终端设备在预读取文件列表中包含的多个应用程序对应的大量文件信息中搜寻待启动应用程序对应的文件信息,进一步提升了速度。In one possible case of this embodiment, multiple pre-read file lists can also be generated for different applications in each terminal device, and each pre-read file list contains file information that an application needs to access during the startup phase. Exemplarily, as shown in FIG6c, application A, application B, and application C in terminal device 1 correspond to three pre-read file lists respectively. In this embodiment, by generating different pre-read file lists for different applications in the terminal device in a personalized manner, it is avoided that the terminal device searches for file information corresponding to the application to be started in a large amount of file information corresponding to multiple applications included in the pre-read file list, and the speed is further improved.
一些实施例中,终端设备中安装的应用程序中,有的应用程序是用户常用的,有些应用程序则不常用;有些应用程序在启动阶段中IO操作消耗的时长相对于整个启动过程消耗的时长的占比较高(即IO阻塞问题较严重),而有些应用程序在启动阶段中IO操作消耗的时长相对于整个启动过程消耗的时长的占比较低(即启动阶段的IO阻塞问题较少)。因此,在具体实施时,不需要将终端设备安装的所有应用程序在启动阶段的IO操作数据均预读取至页高速缓冲存储器中,可以根据用户对应用程序的使用习惯或应用程序在启动阶段的IO操作的特点,将部分应用程序在启动阶段的IO操作数据预读取至页高速缓冲存储器中。In some embodiments, among the applications installed in the terminal device, some applications are frequently used by users, while some applications are not frequently used; the time consumed by IO operations in the startup phase of some applications is relatively high relative to the time consumed in the entire startup process (i.e., the IO blocking problem is more serious), while the time consumed by IO operations in the startup phase of some applications is relatively low relative to the time consumed in the entire startup process (i.e., the IO blocking problem in the startup phase is less). Therefore, in specific implementation, it is not necessary to pre-read the IO operation data of all applications installed in the terminal device in the startup phase into the page cache memory, and the IO operation data of some applications in the startup phase can be pre-read into the page cache memory according to the user's usage habits of the applications or the characteristics of the IO operations of the applications in the startup phase.
具体的,确定终端设备中每个应用程序在启动阶段进行输入/输出操作所占用的时长相对于启动阶段所用时长的时长占比;根据所述时长占比,获取至少一个应用程序在启动阶段的输入/输出操作数据,所述至少一个应用程序为所述时长占比大于预设阈值对应的应用程序。Specifically, determine the proportion of time taken by each application in the terminal device to perform input/output operations during the startup phase relative to the time taken during the startup phase; based on the time proportion, obtain the input/output operation data of at least one application during the startup phase, and the at least one application is an application corresponding to the time proportion being greater than a preset threshold.
其中,预设阈值可以根据实际情况进行确定,比如将预设阈值设定为40%。The preset threshold value may be determined according to actual conditions, for example, the preset threshold value may be set to 40%.
示例性的,假设终端设备1中安装的三个应用程序(应用程序A、B和C)中,应用程序A的整个启动阶段占用的时长为0.1秒,其中,启动阶段的IO操作状态占用的时长为0.05秒,则应用程序A在启动阶段的IO操作等待状态相对于整个启动阶段的时长占比为50%;应用程序B的启动阶段时长为0.2秒,启动阶段的IO操作等待状态占用时长为0.05秒,则应用程序B在启动阶段的IO操作等待状态的时长占比为25%;应用程序C的启动阶段时长为0.08秒,IO操作等待状态的时长为0.035秒,则应用程序C在启动阶段的IO操作等待时长占比为43.75%。则应用程序A和C在启动阶段的IO操作状态时长占比均超过了40%,说明应用程序A和C在启动阶段的IO阻塞问题较为严重。因此,可以仅将应用程序A和C在启动阶段的启动数据预加载至页高速缓冲存储器中,应用程序B由于启动阶段的IO阻塞问题较小,无需对其启动数据进行预加载。即,提取应用程序A和应用程序C在启动阶段的IO操作数据,生成应用程序A和C对应的一个预读取文件列表或者针对两个应用程序分别生成各自的预读取文件列表。For example, suppose that among the three applications (applications A, B and C) installed in the terminal device 1, the entire startup phase of application A takes 0.1 seconds, of which the IO operation state of the startup phase takes 0.05 seconds, then the IO operation waiting state of application A in the startup phase accounts for 50% of the duration of the entire startup phase; the startup phase of application B takes 0.2 seconds, and the IO operation waiting state of the startup phase takes 0.05 seconds, then the IO operation waiting state of application B in the startup phase accounts for 25%; the startup phase of application C takes 0.08 seconds, and the IO operation waiting state takes 0.035 seconds, then the IO operation waiting time of application C in the startup phase accounts for 43.75%. The IO operation state duration of applications A and C in the startup phase accounts for more than 40%, indicating that the IO blocking problem of applications A and C in the startup phase is more serious. Therefore, only the startup data of application programs A and C in the startup phase can be preloaded into the page cache memory, and application program B does not need to preload its startup data because the IO blocking problem in the startup phase is relatively small. That is, the IO operation data of application programs A and C in the startup phase are extracted to generate a pre-read file list corresponding to application programs A and C, or to generate respective pre-read file lists for the two applications.
需要说明的是,上述预设阈值不限于是40%,还可以根据对应用程序启动速度的要求,设置称其他数值,比如30%、50%等。It should be noted that the above preset threshold is not limited to 40%, and other values may be set according to the requirements for the application startup speed, such as 30%, 50%, etc.
本公开实施例中,通过针对终端设备中不同应用程序在启动阶段的IO操作等待状态消耗时长相对于整个启动阶段的时长占比,个性化的生成预读取文件列表,既解决了IO阻塞问题比较严重的应用程序的启动问题,还能减少预读取文件列表占用的存储空间。In the disclosed embodiment, a personalized pre-read file list is generated based on the proportion of the time consumed by the IO operation waiting state of different applications in the terminal device during the startup phase relative to the duration of the entire startup phase. This not only solves the startup problem of applications with serious IO blocking problems, but also reduces the storage space occupied by the pre-read file list.
在本实施例的另一种可能的情况下,还可以根据用户对终端设备中应用程序的使用习惯,生成预读取文件列表。具体包括:获取用户行为信息,所述用户行为信息包括用户对于终端设备中每个应用程序的使用次数和使用时长;根据所述用户行为信息,获取至少一个应用程序在启动阶段的输入/输出操作数据,所述至少一个应用程序为使用次数大于预设次数阈值和/或使用时长大于预设时长阈值对应的应用程序。In another possible case of this embodiment, a pre-read file list may also be generated based on the user's usage habits of the applications in the terminal device. Specifically, it includes: obtaining user behavior information, the user behavior information includes the number of times the user uses each application in the terminal device and the length of time the application is used; according to the user behavior information, obtaining input/output operation data of at least one application in the startup phase, the at least one application being an application corresponding to a number of uses greater than a preset number threshold and/or a length of use greater than a preset length threshold.
具体的,终端设备的CPU记录每个应用程序的启动次数和运行时长,如果应用程序的启动次数大于预设次数阈值或者运行时长大于预设时长阈值,则说明用户使用该应用程序较频繁,可以仅生成用户使用较频繁的应用程序对于的预读取文件列表,根据预读取文件列表将使用较频繁的应用程序在启动阶段需要访问的启动数据预加载至页高速缓冲存储器中。对于其他应用程序,用户使用较少,可以不用预加载其启动阶段的启动数据。Specifically, the CPU of the terminal device records the number of times each application is started and the running time. If the number of times an application is started is greater than a preset number threshold or the running time is greater than a preset time threshold, it means that the user uses the application frequently. A pre-read file list can be generated only for the applications that the user uses frequently. According to the pre-read file list, the startup data that the frequently used applications need to access during the startup phase is pre-loaded into the page cache memory. For other applications, which are rarely used by users, it is not necessary to pre-load their startup data during the startup phase.
示例性的,假设预设次数阈值为50,预设时长阈值为10小时。终端设备1中安装的三个应用程序(应用程序A、B和C)中,假设应用程序A的启动次数为60次,总的运行时长为8小时;应用程序B的启动次数为45次,总的运行时长为12小时;应用程序C的启动次数为20次,总的运行时长为1小时。则说明应用程序A和B是用户的常用应用程序,因此,需要获取应用程序A和B在启动阶段的IO操作数据,生成一个或两个预读取文件列表,最后根据预读取列表将应用程序A和B在启动阶段的IO操作中需要访问的启动数据预加载至页高速缓冲存储器中。For example, it is assumed that the preset number threshold is 50 and the preset duration threshold is 10 hours. Among the three applications (applications A, B and C) installed in the terminal device 1, it is assumed that the number of startups of application A is 60 times, and the total running time is 8 hours; the number of startups of application B is 45 times, and the total running time is 12 hours; the number of startups of application C is 20 times, and the total running time is 1 hour. This means that applications A and B are commonly used applications of the user. Therefore, it is necessary to obtain the IO operation data of applications A and B in the startup phase, generate one or two pre-read file lists, and finally pre-load the startup data that applications A and B need to access in the IO operation of the startup phase into the page cache memory according to the pre-read list.
本公开的实施例中,通过根据用户对应用程序的使用习惯,个性化的生成符合用户行为习惯的预读取文件列表,能够满足用户对应用程序启动速度的个性化需求,同时,也不需要将终端设备中所有应用程序在启动阶段的IO操作中需要访问的数据都加载至页高速缓冲存储器中,减少了空间资源的占用。In the embodiments of the present disclosure, by generating a personalized pre-read file list that conforms to the user's behavior habits based on the user's application usage habits, the user's personalized needs for application startup speed can be met. At the same time, there is no need to load all data that need to be accessed by all applications in the terminal device in the IO operation during the startup phase into the page cache memory, thereby reducing the occupation of space resources.
在一种可能的实施例中,所述应用程序启动方法还包括:确定所述至少一个应用程序中需要更新的应用程序;在所述需要更新的应用程序更新后,更新相应的预读取文件列表。In a possible embodiment, the application startup method further includes: determining an application program that needs to be updated among the at least one application program; and updating a corresponding pre-read file list after the application program that needs to be updated is updated.
具体的,当应用程序被更新时,预读取文件列表因应用程序的改变导致以前的数据可能不准确。并且,dexopt服务可以优化安装后的应用程序,一旦应用程序被优化,应用程序在启动阶段的IO操作数据也可能发生改变,因此需要更新预读取文件列表,以保证更新或优化后的应用程序能够正常快速启动。Specifically, when an application is updated, the pre-read file list may have inaccurate data due to changes in the application. In addition, the dexopt service can optimize installed applications. Once an application is optimized, the IO operation data of the application during the startup phase may also change. Therefore, the pre-read file list needs to be updated to ensure that the updated or optimized application can start normally and quickly.
本实施例的一种可能的情况下,更新相应的预读取文件列表的方法可以包括:获取所述需要更新的应用程序的更新信息,所述更新信息包括新增的输入/输出操作数据、修改的输入/输出操作数据和/或需要删除的输入/输出操作数据;将所述新增的输入/输入操作数据对应的文件信息,写入所述预读取文件列表中;和/或,根据所述修改的输入/输出操作数据,修改所述预读取文件列表中对应的文件信息;和/或,删除所述预读取文件列表中与所述需要删除的输入/输出操作数据对应的文件信息。In one possible case of this embodiment, the method for updating the corresponding pre-read file list may include: obtaining update information of the application that needs to be updated, the update information including newly added input/output operation data, modified input/output operation data and/or input/output operation data that needs to be deleted; writing the file information corresponding to the newly added input/input operation data into the pre-read file list; and/or, modifying the corresponding file information in the pre-read file list according to the modified input/output operation data; and/or, deleting the file information in the pre-read file list corresponding to the input/output operation data that needs to be deleted.
示例性的,如上述实施例中的表1所示,该预读取文件列表包含应用程序在启动阶段的IO操作中需要访问的apk、vdex、odex、art和oat这三个类型文件的文件信息。若该应用程序更新后,修改了在启动阶段的IO操作数据,且修改的IO操作数据为:Tracing_mark_write:B|31022|read:/app/com.ss.android.ugc.aweme-IUyTG1jJ4wEJCV_-PkexLQ==/oat/arm/base.odex,offset:123456,size:54321,则需要根据该修改的IO操作数据,将表1中对应的odex文件对应的文件偏移量由“606208”改成“123456”,数据长度由“69632”修改成“54321”。同理,若该应用程序更新后新增了输入/输出操作数据或者删除了一些输入/输出操作数据,则对应在预读取文件列表中新增文件信息或者删除相应的文件信息即可。Exemplarily, as shown in Table 1 in the above embodiment, the pre-read file list contains file information of three types of files, namely, apk, vdex, odex, art and oat, which the application needs to access in the IO operation of the startup phase. If the IO operation data in the startup phase is modified after the application is updated, and the modified IO operation data is: Tracing_mark_write:B|31022|read:/app/com.ss.android.ugc.aweme-IUyTG1jJ4wEJCV_-PkexLQ==/oat/arm/base.odex, offset:123456, size:54321, then according to the modified IO operation data, the file offset corresponding to the corresponding odex file in Table 1 needs to be changed from "606208" to "123456", and the data length needs to be changed from "69632" to "54321". Similarly, if the application is updated and some input/output operation data is added or some input/output operation data is deleted, then the file information is added or the corresponding file information is deleted in the pre-read file list.
一些实施例中,若终端设备原有预读取文件列表只有一个,即终端设备中安装的应用程序对应的文件信息均记录在该预读取文件列表中,则对于更新的应用程序,终端设备还可以删除预读取文件列表中应用程序更新前对应的所有文件信息,然后再根据更新后的应用程序在启动阶段的IO操作数据,重新将对应的文件信息写入预读取文件列表中。若终端设备中每个应用程序对应一个预读取文件列表,则对于更新的应用程序,终端设备可以删除应用程序更新前对于的预读取文件列表,然后根据更新后的应用程序在在启动阶段的IO操作数据,重新生成一个预读取文件列表。In some embodiments, if the terminal device originally has only one pre-read file list, that is, the file information corresponding to the applications installed in the terminal device is recorded in the pre-read file list, then for the updated application, the terminal device can also delete all the file information corresponding to the application in the pre-read file list before the application is updated, and then re-write the corresponding file information into the pre-read file list according to the IO operation data of the updated application in the startup phase. If each application in the terminal device corresponds to a pre-read file list, then for the updated application, the terminal device can delete the pre-read file list corresponding to the application before the application is updated, and then regenerate a pre-read file list according to the IO operation data of the updated application in the startup phase.
需要说明的是,本实施例中可以在相应更新的应用程序和终端设备处于空闲状态时,更新预读取文件列表。It should be noted that, in this embodiment, the pre-read file list may be updated when the corresponding updated application and the terminal device are in an idle state.
本公开实施例中,通过在设备和应用程序空闲的时候更新预读取文件列表,既不会在应用程序和设备运行时占用更多的CPU资源,还能在下次启动应用程序时保证应用程序正常且快速的启动。In the disclosed embodiment, by updating the pre-read file list when the device and the application are idle, more CPU resources will not be occupied when the application and the device are running, and the application can be guaranteed to start normally and quickly the next time the application is started.
在本公开实施例另一种可能的情况下,应用程序的启动方法还包括:确定新安装的应用程序;根据所述新安装的应用程序在启动阶段的输入/输出操作数据,更新预读取文件列表。In another possible case of the embodiment of the present disclosure, the method for starting an application further includes: determining a newly installed application; and updating a pre-read file list according to input/output operation data of the newly installed application during the startup phase.
具体的,用户在使用终端设备时,可能会安装新的应用程序,对于新安装的应用程序,原有的预读取文件列表中不存在其在启动阶段的IO操作中需要访问的文件的文件信息,因此,需要获取新安装的应用程序在启动阶段的输入/输出操作数据,然后提取所述新安装的应用程序在启动阶段的输入/输出操作数据中的文件信息;然后根据提取到的文件信息更新预读取文件列表。Specifically, when using a terminal device, a user may install a new application. For the newly installed application, the original pre-read file list does not contain the file information of the file that needs to be accessed in the IO operation of the startup phase. Therefore, it is necessary to obtain the input/output operation data of the newly installed application in the startup phase, and then extract the file information in the input/output operation data of the newly installed application in the startup phase; and then update the pre-read file list according to the extracted file information.
若终端设备原有预读取文件列表只有一个,即终端设备中安装的应用程序对应的文件信息均记录在该预读取文件列表中,则将在新安装的应用程序在启动阶段的IO操作数据中提取到的文件信息写入所述预读取文件列表中。If the terminal device has only one pre-read file list, that is, the file information corresponding to the applications installed in the terminal device are all recorded in the pre-read file list, then the file information extracted from the IO operation data of the newly installed application during the startup phase is written into the pre-read file list.
示例性的,假设终端设备中原来安装应用程序A和B两个应用程序,其对应的预读取文件列表如表3-1所示。新安装应用程序C,则将新安装的应用程序C在启动阶段的IO操作数据中提取的文件信息写入预读取文件列表中,更新后的预读取文件列表如表3-2所示。For example, assume that two applications A and B are originally installed in the terminal device, and their corresponding pre-read file lists are shown in Table 3-1. If application C is newly installed, the file information extracted from the IO operation data of the newly installed application C in the startup phase is written into the pre-read file list, and the updated pre-read file list is shown in Table 3-2.
表3-1Table 3-1
表3-2Table 3-2
若终端设备中每个应用程序对应一个预读取文件列表,则针对新安装的应用程序在启动阶段的IO操作数据中提取出来的文件信息,生成一个新的预读取文件列表。比如,终端设备中原来安装应用程序A和B,应用程序A对应第一预读取文件列表,应用程序B对应第二预读取文件列表,则针对新安装的应用程序C,在生成一个第三预读取文件列表,该第三预读取文件列表中包含新安装的应用程序C在启动阶段的IO操作中需要访问的文件信息。If each application in the terminal device corresponds to a pre-read file list, a new pre-read file list is generated for the file information extracted from the IO operation data of the newly installed application in the startup phase. For example, if applications A and B are originally installed in the terminal device, application A corresponds to the first pre-read file list, and application B corresponds to the second pre-read file list, then a third pre-read file list is generated for the newly installed application C, and the third pre-read file list contains the file information that the newly installed application C needs to access in the IO operation of the startup phase.
本公开实施例中,通过根据新安装的应用程序更新预读取文件列表,保证了启动应用程序在后续启动时的启动速度。In the disclosed embodiment, by updating the pre-read file list according to the newly installed application, the startup speed of the startup application during subsequent startup is guaranteed.
图7为本公开实施例提供的应用程序启动系统的结构示意图。FIG. 7 is a schematic diagram of the structure of an application startup system provided in an embodiment of the present disclosure.
如图7所示,本公开实施例提供的系统包括:接收模块701和启动模块702;其中,接收模块701,用于接收用户对目标应用程序输入的启动指令;启动模块702,用于根据所述启动指令在页高速缓冲存储器中读取所述目标应用程序需要访问的启动数据,根据所述启动数据启动所述目标应用程序,所述目标应用程序需要访问的启动数据是预先采集所述目标应用程序在启动阶段的输入/输出操作数据并存储在所述页高速缓冲存储器中的。As shown in FIG7 , the system provided by the embodiment of the present disclosure includes: a receiving module 701 and a starting module 702; wherein the receiving module 701 is used to receive a starting instruction input by a user for a target application; the starting module 702 is used to read starting data that the target application needs to access in a page cache memory according to the starting instruction, and start the target application according to the starting data, wherein the starting data that the target application needs to access is input/output operation data of the target application in the starting phase collected in advance and stored in the page cache memory.
进一步的,本公开实施例提供的系统还包括:列表生成模块703和预读取模块704;所述列表生成模块用于:根据获取到的至少一个应用程序在启动阶段的输入/输出操作数据,生成预读取文件列表,所述预读取文件列表包含所述至少一个应用程序在启动阶段需要访问的文件信息;所述预读取模块用于根据所述文件信息获取所述至少一个应用程序对应的启动数据,并将所述启动数据预读取至所述页高速缓冲存储器中;其中,所述至少一个应用程序为一个或多个终端设备中安装的应用程序。Furthermore, the system provided by the embodiment of the present disclosure also includes: a list generation module 703 and a pre-reading module 704; the list generation module is used to: generate a pre-read file list based on the input/output operation data of at least one application obtained during the startup phase, and the pre-read file list contains file information that the at least one application needs to access during the startup phase; the pre-reading module is used to obtain the startup data corresponding to the at least one application based on the file information, and pre-read the startup data into the page cache memory; wherein the at least one application is an application installed in one or more terminal devices.
进一步的,所述列表生成模块具体用于:生成一个预读取文件列表,所述一个预读取文件列表中包含所有应用程序在启动阶段需要访问的文件信息;或者,生成多个预读取文件列表,每个预读取文件列表中包含一个应用程序在启动阶段需要访问的文件信息。Furthermore, the list generation module is specifically used to: generate a pre-read file list, wherein the pre-read file list contains file information that all applications need to access during the startup phase; or generate multiple pre-read file lists, each pre-read file list contains file information that an application needs to access during the startup phase.
进一步的,所述文件信息包括文件标识、文件偏移量和数据长度,参见图8,所述预读取模块704包括:获取单元7041,用于获取所述文件标识对应的文件;确定单元7042,用于根据所述文件偏移量,确定启动数据在所述文件中的起始位置;读取单元7043,用于从所述起始位置开始,读取所述数据长度的启动数据,并将读取的启动数据加载至所述页高速缓冲存储器中。Furthermore, the file information includes a file identifier, a file offset and a data length. Referring to FIG8 , the pre-reading module 704 includes: an acquisition unit 7041, for acquiring the file corresponding to the file identifier; a determination unit 7042, for determining the starting position of the startup data in the file according to the file offset; and a reading unit 7043, for reading the startup data of the data length starting from the starting position, and loading the read startup data into the page cache memory.
进一步的,所述启动模块具体用于:根据预先存储在所述页高速缓冲存储器中的应用程序标识和启动数据之间的对应关系,在所述页高速缓冲存储器中读取所述目标应用程序的标识对应的启动数据。Furthermore, the startup module is specifically used to read the startup data corresponding to the identifier of the target application in the page cache memory according to the corresponding relationship between the application identifier and the startup data pre-stored in the page cache memory.
进一步的,本公开实施例提供的系统还包括:获取模块705,用于确定终端设备中每个应用程序在启动阶段进行输入/输出操作所占用的时长相对于启动阶段所用时长的时长占比;根据所述时长占比,获取至少一个应用程序在启动阶段的输入/输出操作数据,所述至少一个应用程序为所述时长占比大于预设阈值对应的应用程序。Furthermore, the system provided by the embodiment of the present disclosure also includes: an acquisition module 705, which is used to determine the proportion of time occupied by each application in the terminal device for input/output operations in the startup phase relative to the time taken in the startup phase; based on the time proportion, obtain input/output operation data of at least one application in the startup phase, and the at least one application is an application corresponding to the time proportion being greater than a preset threshold.
一些实施例中,所述获取模块还用于:获取用户行为信息,所述用户行为信息包括用户对于终端设备中每个应用程序的使用次数和使用时长;根据所述用户行为信息,获取至少一个应用程序在启动阶段的输入/输出操作数据,所述至少一个应用程序为使用次数大于预设次数阈值和/或使用时长大于预设时长阈值对应的应用程序。In some embodiments, the acquisition module is also used to: obtain user behavior information, the user behavior information including the number of times and duration of use of each application in the terminal device by the user; and obtain input/output operation data of at least one application during the startup phase based on the user behavior information, the at least one application being an application corresponding to a number of uses greater than a preset number threshold and/or a usage duration greater than a preset duration threshold.
进一步的,本公开实施例提供的系统还包括:更新模块706,用于确定所述至少一个应用程序中需要更新的应用程序;在所述需要更新的应用程序更新后,更新相应的预读取文件列表。Furthermore, the system provided by the embodiment of the present disclosure also includes: an update module 706, which is used to determine an application program that needs to be updated among the at least one application program; after the application program that needs to be updated is updated, update the corresponding pre-read file list.
进一步的,所述更新模块706具体用于:获取所述需要更新的应用程序的更新信息,所述更新信息包括新增的输入/输出操作数据、修改的输入/输出操作数据和/或需要删除的输入/输出操作数据;将所述新增的输入/输入操作数据对应的文件信息,写入所述预读取文件列表中;和/或,根据所述修改的输入/输出操作数据,修改所述预读取文件列表中对应的文件信息;和/或,删除所述预读取文件列表中与所述需要删除的输入/输出操作数据对应的文件信息。Furthermore, the update module 706 is specifically used to: obtain update information of the application that needs to be updated, the update information including newly added input/output operation data, modified input/output operation data and/or input/output operation data that needs to be deleted; write the file information corresponding to the newly added input/input operation data into the pre-read file list; and/or, according to the modified input/output operation data, modify the corresponding file information in the pre-read file list; and/or, delete the file information in the pre-read file list corresponding to the input/output operation data that needs to be deleted.
一些实施例中,所述更新模块还用于:确定新安装的应用程序;根据所述新安装的应用程序在启动阶段的输入/输出操作数据,更新预读取文件列表。In some embodiments, the update module is further used to: determine a newly installed application; and update the pre-read file list according to input/output operation data of the newly installed application during the startup phase.
进一步的,所述更新模块具体用于:提取所述新安装的应用程序在启动阶段的输入/输出操作数据中的文件信息;将提取到的文件信息写入所述预读取文件列表中。Furthermore, the update module is specifically used to: extract file information from input/output operation data of the newly installed application in the startup phase; and write the extracted file information into the pre-read file list.
进一步的,所述列表生成模块还用于:提取所述新安装的应用程序在启动阶段的输入/输出操作数据中的文件信息;根据提取到的文件信息,生成新的预读取文件列表。Furthermore, the list generation module is also used to: extract file information from the input/output operation data of the newly installed application in the startup phase; and generate a new pre-read file list according to the extracted file information.
本实施例提供的系统,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。The system provided in this embodiment can be used to execute the technical solution of the above method embodiment. Its implementation principle and technical effects are similar and will not be described in detail in this embodiment.
参考图9,其示出了适于用来实现本公开实施例的电子设备900的结构示意图,该电子设备900可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑(Portable Android Device,简称PAD)、便携式多媒体播放器(Portable MediaPlayer,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。Referring to FIG9 , it shows a schematic diagram of the structure of an electronic device 900 suitable for implementing an embodiment of the present disclosure, and the electronic device 900 may be a terminal device or a server. The terminal device may include, but is not limited to, mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, personal digital assistants (PDAs), tablet computers (Portable Android Devices, PADs), portable multimedia players (Portable Media Players, PMPs), vehicle-mounted terminals (such as vehicle-mounted navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. The electronic device shown in FIG9 is only an example and should not impose any limitations on the functions and scope of use of the embodiments of the present disclosure.
如图9所示,电子设备900可以包括处理装置(例如中央处理器、图形处理器等)901,其可以根据存储在只读存储器(Read Only Memory,简称ROM)902中的程序或者从存储装置908加载到随机访问存储器(Random Access Memory,简称RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有电子设备900操作所需的各种程序和数据。处理装置901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。As shown in FIG9 , the electronic device 900 may include a processing device (e.g., a central processing unit, a graphics processing unit, etc.) 901, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 902 or a program loaded from a storage device 908 to a random access memory (RAM) 903. Various programs and data required for the operation of the electronic device 900 are also stored in the RAM 903. The processing device 901, the ROM 902, and the RAM 903 are connected to each other via a bus 904. An input/output (I/O) interface 905 is also connected to the bus 904.
通常,以下装置可以连接至I/O接口905:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置906;包括例如液晶显示器(Liquid CrystalDisplay,简称LCD)、扬声器、振动器等的输出装置907;包括例如磁带、硬盘等的存储装置908;以及通信装置909。通信装置909可以允许电子设备900与其他设备进行无线或有线通信以交换数据。虽然图9示出了具有各种装置的电子设备900,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。Typically, the following devices may be connected to the I/O interface 905: input devices 906 including, for example, a touch screen, a touchpad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; output devices 907 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; storage devices 908 including, for example, a magnetic tape, a hard disk, etc.; and communication devices 909. The communication device 909 may allow the electronic device 900 to communicate wirelessly or wired with other devices to exchange data. Although FIG. 9 shows an electronic device 900 with various devices, it should be understood that it is not required to implement or have all the devices shown. More or fewer devices may be implemented or have alternatively.
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置909从网络上被下载和安装,或者从存储装置908被安装,或者从ROM902被安装。在该计算机程序被处理装置901执行时,执行本公开实施例的方法中限定的上述功能。In particular, according to an embodiment of the present disclosure, the process described above with reference to the flowchart can be implemented as a computer software program. For example, an embodiment of the present disclosure includes a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program contains program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from the network through the communication device 909, or installed from the storage device 908, or installed from the ROM 902. When the computer program is executed by the processing device 901, the above-mentioned functions defined in the method of the embodiment of the present disclosure are executed.
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。It should be noted that the computer-readable medium disclosed above may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program that may be used by or in combination with an instruction execution system, device or device. In the present disclosure, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, in which a computer-readable program code is carried. This propagated data signal may take a variety of forms, including but not limited to an electromagnetic signal, an optical signal, or any suitable combination of the above. The computer readable signal medium may also be any computer readable medium other than a computer readable storage medium, which may send, propagate or transmit a program for use by or in conjunction with an instruction execution system, apparatus or device. The program code contained on the computer readable medium may be transmitted using any suitable medium, including but not limited to: wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。The computer-readable medium may be included in the electronic device, or may exist independently without being installed in the electronic device.
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。The computer-readable medium carries one or more programs. When the one or more programs are executed by the electronic device, the electronic device executes the method shown in the above embodiment.
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network,简称LAN)或广域网(Wide Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。Computer program code for performing the operations of the present disclosure may be written in one or more programming languages or a combination thereof, including object-oriented programming languages, such as Java, Smalltalk, C++, and conventional procedural programming languages, such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some implementations as replacements, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and/or flow chart, and the combination of the square boxes in the block diagram and/or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。The units involved in the embodiments described in the present disclosure may be implemented by software or hardware. The name of a unit does not limit the unit itself in some cases. For example, the first acquisition unit may also be described as a "unit for acquiring at least two Internet Protocol addresses".
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。The functions described above herein may be performed at least in part by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chip (SOCs), complex programmable logic devices (CPLDs), and the like.
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
第一方面,根据本公开的一个或多个实施例,提供了一种应用程序启动方法,包括:In a first aspect, according to one or more embodiments of the present disclosure, a method for starting an application is provided, comprising:
接收用户对目标应用程序输入的启动指令;Receiving a start instruction input by a user for a target application;
根据所述启动指令在页高速缓冲存储器中读取所述目标应用程序需要访问的启动数据,根据所述启动数据启动所述目标应用程序,所述目标应用程序需要访问的启动数据是预先采集所述目标应用程序在启动阶段的输入/输出操作数据并存储在所述页高速缓冲存储器中的。The startup data that the target application needs to access is read from the page cache memory according to the startup instruction, and the target application is started according to the startup data. The startup data that the target application needs to access is the input/output operation data of the target application in the startup phase collected in advance and stored in the page cache memory.
根据本公开的一个或多个实施例,所述接收用户对目标应用程序输入的启动指令之前,所述方法还包括:According to one or more embodiments of the present disclosure, before receiving a start instruction input by a user for a target application, the method further includes:
根据获取到的至少一个应用程序在启动阶段的输入/输出操作数据,生成预读取文件列表,所述预读取文件列表包含所述至少一个应用程序在启动阶段需要访问的文件信息;Generate a pre-read file list according to the acquired input/output operation data of at least one application in the startup phase, wherein the pre-read file list includes file information that the at least one application needs to access in the startup phase;
根据所述文件信息获取所述至少一个应用程序对应的启动数据,并将所述启动数据预读取至所述页高速缓冲存储器中;Acquire startup data corresponding to the at least one application according to the file information, and pre-read the startup data into the page cache memory;
其中,所述至少一个应用程序为一个或多个终端设备中安装的应用程序。The at least one application is an application installed in one or more terminal devices.
根据本公开的一个或多个实施例,所述生成预读取文件列表,所述预读取文件列表包含所述至少一个应用程序在启动阶段需要访问的文件信息,包括:According to one or more embodiments of the present disclosure, the generating of the pre-read file list, wherein the pre-read file list contains file information that the at least one application needs to access during the startup phase, includes:
生成一个预读取文件列表,所述一个预读取文件列表中包含所有应用程序在启动阶段需要访问的文件信息;Generate a pre-read file list, wherein the pre-read file list contains all file information that the application needs to access during the startup phase;
或者,or,
生成多个预读取文件列表,每个预读取文件列表中包含一个应用程序在启动阶段需要访问的文件信息。Generate multiple pre-read file lists, each of which contains file information that an application needs to access during a startup phase.
根据本公开的一个或多个实施例,所述文件信息包括文件标识、文件偏移量和数据长度,所述根据所述文件信息获取所述至少一个应用程序对应的启动数据,并将所述启动数据预读取至所述页高速缓冲存储器中,包括:According to one or more embodiments of the present disclosure, the file information includes a file identifier, a file offset, and a data length, and obtaining startup data corresponding to the at least one application according to the file information, and pre-reading the startup data into the page cache memory includes:
获取所述文件标识对应的文件;Obtain the file corresponding to the file identifier;
根据所述文件偏移量,确定所述启动数据在所述文件中的起始位置;Determine the starting position of the startup data in the file according to the file offset;
从所述起始位置开始,读取所述数据长度的启动数据,并将读取的启动数据加载至所述页高速缓冲存储器中。Starting from the start position, the startup data of the data length is read, and the read startup data is loaded into the page cache memory.
根据本公开的一个或多个实施例,所述启动指令包括所述目标应用程序的标识,所述根据所述启动指令在页高速缓冲存储器中读取所述目标应用程序需要访问的启动数据,包括:According to one or more embodiments of the present disclosure, the startup instruction includes an identifier of the target application, and reading startup data that the target application needs to access in a page cache memory according to the startup instruction includes:
根据预先存储在所述页高速缓冲存储器中的应用程序标识和启动数据之间的对应关系,在所述页高速缓冲存储器中读取所述目标应用程序的标识对应的启动数据。The startup data corresponding to the identifier of the target application is read from the page cache memory according to the corresponding relationship between the application identifier and the startup data pre-stored in the page cache memory.
根据本公开的一个或多个实施例,所述方法还包括:According to one or more embodiments of the present disclosure, the method further includes:
确定终端设备中每个应用程序在启动阶段进行输入/输出操作所占用的时长相对于启动阶段所用时长的时长占比;Determine the time taken by each application in the terminal device to perform input/output operations during the startup phase relative to the time taken during the startup phase;
根据所述时长占比,获取至少一个应用程序在启动阶段的输入/输出操作数据,所述至少一个应用程序为所述时长占比大于预设阈值对应的应用程序。According to the duration ratio, input/output operation data of at least one application in a startup phase is obtained, and the at least one application is an application corresponding to a duration ratio greater than a preset threshold.
根据本公开的一个或多个实施例,所述方法还包括:According to one or more embodiments of the present disclosure, the method further includes:
获取用户行为信息,所述用户行为信息包括用户对于终端设备中每个应用程序的使用次数和使用时长;Obtaining user behavior information, wherein the user behavior information includes the number of times and duration of use of each application in the terminal device by the user;
根据所述用户行为信息,获取至少一个应用程序在启动阶段的输入/输出操作数据,所述至少一个应用程序为使用次数大于预设次数阈值和/或使用时长大于预设时长阈值对应的应用程序。According to the user behavior information, input/output operation data of at least one application in the startup phase is obtained, and the at least one application is an application corresponding to a usage count greater than a preset threshold and/or a usage duration greater than a preset threshold.
根据本公开的一个或多个实施例,所述方法还包括:According to one or more embodiments of the present disclosure, the method further includes:
确定所述至少一个应用程序中需要更新的应用程序;determining an application program among the at least one application program that needs to be updated;
在所述需要更新的应用程序更新后,更新相应的预读取文件列表。After the application program that needs to be updated is updated, the corresponding pre-read file list is updated.
根据本公开的一个或多个实施例,所述更新相应的预读取文件列表,包括:According to one or more embodiments of the present disclosure, updating the corresponding pre-read file list includes:
获取所述需要更新的应用程序的更新信息,所述更新信息包括新增的输入/输出操作数据、修改的输入/输出操作数据和/或需要删除的输入/输出操作数据;Acquiring update information of the application program that needs to be updated, the update information including newly added input/output operation data, modified input/output operation data and/or input/output operation data that needs to be deleted;
将所述新增的输入/输入操作数据对应的文件信息,写入所述预读取文件列表中;和/或,Writing the file information corresponding to the newly added input/input operation data into the pre-read file list; and/or,
根据所述修改的输入/输出操作数据,修改所述预读取文件列表中对应的文件信息;和/或,Modify the corresponding file information in the pre-read file list according to the modified input/output operation data; and/or,
删除所述预读取文件列表中与所述需要删除的输入/输出操作数据对应的文件信息。The file information corresponding to the input/output operation data to be deleted in the pre-read file list is deleted.
根据本公开的一个或多个实施例,所述方法还包括:According to one or more embodiments of the present disclosure, the method further includes:
确定新安装的应用程序;Identify newly installed applications;
根据所述新安装的应用程序在启动阶段的输入/输出操作数据,更新预读取文件列表。The pre-read file list is updated according to the input/output operation data of the newly installed application program in the startup phase.
根据本公开的一个或多个实施例,所述根据所述新安装的应用程序在启动阶段的输入/输出操作数据,更新预读取文件列表,包括:According to one or more embodiments of the present disclosure, updating the pre-read file list according to the input/output operation data of the newly installed application in the startup phase includes:
提取所述新安装的应用程序在启动阶段的输入/输出操作数据中的文件信息;Extracting file information from input/output operation data of the newly installed application during the startup phase;
将提取到的文件信息写入所述预读取文件列表中。The extracted file information is written into the pre-read file list.
根据本公开的一个或多个实施例,所述根据所述新安装的应用程序在启动阶段的输入/输出操作数据,更新预读取文件列表,包括:According to one or more embodiments of the present disclosure, updating the pre-read file list according to the input/output operation data of the newly installed application in the startup phase includes:
提取所述新安装的应用程序在启动阶段的输入/输出操作数据中的文件信息;Extracting file information from input/output operation data of the newly installed application during the startup phase;
根据提取到的文件信息,生成新的预读取文件列表。Generate a new pre-read file list based on the extracted file information.
第二方面,根据本公开的一个或多个实施例,提供了一种应用程序启动系统,包括:接收模块和启动模块;其中,接收模块,用于接收用户对目标应用程序输入的启动指令;启动模块,用于根据所述启动指令在页高速缓冲存储器中读取所述目标应用程序需要访问的启动数据,根据所述启动数据启动所述目标应用程序,所述目标应用程序需要访问的启动数据是预先采集所述目标应用程序在启动阶段的输入/输出操作数据并存储在所述页高速缓冲存储器中的。In a second aspect, according to one or more embodiments of the present disclosure, there is provided an application startup system, comprising: a receiving module and a startup module; wherein the receiving module is used to receive a startup instruction input by a user for a target application; the startup module is used to read startup data that the target application needs to access in a page cache memory according to the startup instruction, and start the target application according to the startup data, wherein the startup data that the target application needs to access is input/output operation data of the target application in the startup phase that is pre-collected and stored in the page cache memory.
根据本公开的一个或多个实施例,所述系统还包括:列表生成模块和预读取模块;所述列表生成模块用于:根据获取到的至少一个应用程序在启动阶段的输入/输出操作数据,生成预读取文件列表,所述预读取文件列表包含所述至少一个应用程序在启动阶段需要访问的文件信息;所述预读取模块用于根据所述文件信息获取所述至少一个应用程序对应的启动数据,并将所述启动数据预读取至所述页高速缓冲存储器中;其中,所述至少一个应用程序为一个或多个终端设备中安装的应用程序。According to one or more embodiments of the present disclosure, the system also includes: a list generation module and a pre-reading module; the list generation module is used to: generate a pre-read file list based on the input/output operation data of at least one application obtained during the startup phase, and the pre-read file list contains file information that the at least one application needs to access during the startup phase; the pre-reading module is used to obtain the startup data corresponding to the at least one application based on the file information, and pre-read the startup data into the page cache memory; wherein the at least one application is an application installed in one or more terminal devices.
根据本公开的一个或多个实施例,所述列表生成模块具体用于:生成一个预读取文件列表,所述一个预读取文件列表中包含所有应用程序在启动阶段需要访问的文件信息;或者,生成多个预读取文件列表,每个预读取文件列表中包含一个应用程序在启动阶段需要访问的文件信息。According to one or more embodiments of the present disclosure, the list generation module is specifically used to: generate a pre-read file list, wherein the pre-read file list contains file information that all applications need to access during the startup phase; or generate multiple pre-read file lists, each pre-read file list contains file information that an application needs to access during the startup phase.
根据本公开的一个或多个实施例,所述文件信息包括文件标识、文件偏移量和数据长度,所述预读取模块包括:获取单元,用于获取所述文件标识对应的文件;确定单元,用于根据所述文件偏移量,确定启动数据在所述文件中的起始位置;读取单元,用于从所述起始位置开始,读取所述数据长度的启动数据,并将读取的启动数据加载至所述页高速缓冲存储器中。According to one or more embodiments of the present disclosure, the file information includes a file identifier, a file offset and a data length, and the pre-reading module includes: an acquisition unit, used to acquire the file corresponding to the file identifier; a determination unit, used to determine the starting position of the startup data in the file according to the file offset; and a reading unit, used to read the startup data of the data length starting from the starting position, and load the read startup data into the page cache memory.
根据本公开的一个或多个实施例,所述启动模块具体用于:根据预先存储在所述页高速缓冲存储器中的应用程序标识和启动数据之间的对应关系,在所述页高速缓冲存储器中读取所述目标应用程序的标识对应的启动数据。According to one or more embodiments of the present disclosure, the startup module is specifically used to read the startup data corresponding to the identifier of the target application in the page cache memory according to the correspondence between the application identifier and the startup data pre-stored in the page cache memory.
根据本公开的一个或多个实施例,所述系统还包括:获取模块,用于确定终端设备中每个应用程序在启动阶段进行输入/输出操作所占用的时长相对于启动阶段所用时长的时长占比;根据所述时长占比,获取至少一个应用程序在启动阶段的输入/输出操作数据,所述至少一个应用程序为所述时长占比大于预设阈值对应的应用程序。According to one or more embodiments of the present disclosure, the system further includes: an acquisition module, used to determine the proportion of time occupied by each application in the terminal device for input/output operations during the startup phase relative to the time taken during the startup phase; based on the time proportion, obtaining input/output operation data of at least one application during the startup phase, the at least one application being an application corresponding to the time proportion being greater than a preset threshold.
根据本公开的一个或多个实施例,所述获取模块还用于:获取用户行为信息,所述用户行为信息包括用户对于终端设备中每个应用程序的使用次数和使用时长;根据所述用户行为信息,获取至少一个应用程序在启动阶段的输入/输出操作数据,所述至少一个应用程序为使用次数大于预设次数阈值和/或使用时长大于预设时长阈值对应的应用程序。According to one or more embodiments of the present disclosure, the acquisition module is also used to: obtain user behavior information, the user behavior information including the number of times and duration of use of each application in the terminal device by the user; based on the user behavior information, obtain input/output operation data of at least one application during the startup phase, the at least one application being an application corresponding to a number of uses greater than a preset number threshold and/or a usage duration greater than a preset duration threshold.
根据本公开的一个或多个实施例,所述系统还包括:更新模块,用于确定所述至少一个应用程序中需要更新的应用程序;在所述需要更新的应用程序更新后,更新相应的预读取文件列表。According to one or more embodiments of the present disclosure, the system further includes: an update module, configured to determine an application program that needs to be updated among the at least one application program; and to update a corresponding pre-read file list after the application program that needs to be updated is updated.
根据本公开的一个或多个实施例,所述更新模块具体用于:获取所述需要更新的应用程序的更新信息,所述更新信息包括新增的输入/输出操作数据、修改的输入/输出操作数据和/或需要删除的输入/输出操作数据;将所述新增的输入/输入操作数据对应的文件信息,写入所述预读取文件列表中;和/或,根据所述修改的输入/输出操作数据,修改所述预读取文件列表中对应的文件信息;和/或,删除所述预读取文件列表中与所述需要删除的输入/输出操作数据对应的文件信息。According to one or more embodiments of the present disclosure, the update module is specifically used to: obtain update information of the application that needs to be updated, the update information including newly added input/output operation data, modified input/output operation data and/or input/output operation data that needs to be deleted; write the file information corresponding to the newly added input/input operation data into the pre-read file list; and/or, based on the modified input/output operation data, modify the corresponding file information in the pre-read file list; and/or, delete the file information in the pre-read file list that corresponds to the input/output operation data that needs to be deleted.
根据本公开的一个或多个实施例,所述更新模块还用于:确定新安装的应用程序;根据所述新安装的应用程序在启动阶段的输入/输出操作数据,更新预读取文件列表。According to one or more embodiments of the present disclosure, the update module is further used to: determine a newly installed application; and update the pre-read file list according to input/output operation data of the newly installed application during the startup phase.
根据本公开的一个或多个实施例,所述更新模块具体用于:提取所述新安装的应用程序在启动阶段的输入/输出操作数据中的文件信息;将提取到的文件信息写入所述预读取文件列表中。According to one or more embodiments of the present disclosure, the update module is specifically used to: extract file information from input/output operation data of the newly installed application during the startup phase; and write the extracted file information into the pre-read file list.
根据本公开的一个或多个实施例,所述列表生成模块还用于:提取所述新安装的应用程序在启动阶段的输入/输出操作数据中的文件信息;根据提取到的文件信息,生成新的预读取文件列表。According to one or more embodiments of the present disclosure, the list generation module is further used to: extract file information from input/output operation data of the newly installed application during the startup phase; and generate a new pre-read file list based on the extracted file information.
第三方面,根据本公开的一个或多个实施例,提供了一种电子设备,包括:至少一个处理器和存储器;In a third aspect, according to one or more embodiments of the present disclosure, there is provided an electronic device, comprising: at least one processor and a memory;
所述存储器存储计算机执行指令;The memory stores computer-executable instructions;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的应用程序启动方法。The at least one processor executes the computer-executable instructions stored in the memory, so that the at least one processor executes the application startup method described in the first aspect and various possible designs of the first aspect.
第四方面,根据本公开的一个或多个实施例,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的应用程序启动方法。In a fourth aspect, according to one or more embodiments of the present disclosure, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores computer execution instructions. When a processor executes the computer execution instructions, the application startup method described in the first aspect and various possible designs of the first aspect is implemented.
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。The above description is only a preferred embodiment of the present disclosure and an explanation of the technical principles used. Those skilled in the art should understand that the scope of disclosure involved in the present disclosure is not limited to the technical solutions formed by a specific combination of the above technical features, but should also cover other technical solutions formed by any combination of the above technical features or their equivalent features without departing from the above disclosed concept. For example, the above features are replaced with the technical features with similar functions disclosed in the present disclosure (but not limited to) by each other.
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。In addition, although each operation is described in a specific order, this should not be understood as requiring these operations to be performed in the specific order shown or in a sequential order. Under certain circumstances, multitasking and parallel processing may be advantageous. Similarly, although some specific implementation details are included in the above discussion, these should not be interpreted as limiting the scope of the present disclosure. Some features described in the context of a separate embodiment can also be implemented in a single embodiment in combination. On the contrary, the various features described in the context of a single embodiment can also be implemented in multiple embodiments individually or in any suitable sub-combination mode.
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。Although the subject matter has been described in language specific to structural features and/or methodological logical actions, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. On the contrary, the specific features and actions described above are merely example forms of implementing the claims.
Claims (12)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202011364872.8A CN114625433B (en) | 2020-11-27 | 2020-11-27 | Application startup method and system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202011364872.8A CN114625433B (en) | 2020-11-27 | 2020-11-27 | Application startup method and system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN114625433A CN114625433A (en) | 2022-06-14 |
| CN114625433B true CN114625433B (en) | 2024-05-07 |
Family
ID=81895122
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202011364872.8A Active CN114625433B (en) | 2020-11-27 | 2020-11-27 | Application startup method and system |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN114625433B (en) |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102662714A (en) * | 2012-04-17 | 2012-09-12 | 中标软件有限公司 | Linux operation system and startup method thereof |
| CN103370704A (en) * | 2010-12-21 | 2013-10-23 | 赛贝斯股份有限公司 | Bulk initial download of mobile databases |
| CN103577212A (en) * | 2012-08-08 | 2014-02-12 | 腾讯科技(深圳)有限公司 | System starting preloading method and device |
| CN103677920A (en) * | 2013-12-11 | 2014-03-26 | 清华大学 | Critical application program identifying and starting accelerating method and system |
| CN104102695A (en) * | 2014-06-26 | 2014-10-15 | 晨星半导体股份有限公司 | Data processing method and smart device in startup process of smart device |
| CN104408209A (en) * | 2014-12-25 | 2015-03-11 | 中科创达软件股份有限公司 | File processing method, file processing device and electronic equipment in start-up process of mobile operating system |
| CN108694135A (en) * | 2017-03-31 | 2018-10-23 | 英特尔公司 | For the method and apparatus that persistently cache stores data in page cache |
| CN111897684A (en) * | 2020-07-15 | 2020-11-06 | 中国工商银行股份有限公司 | Disk fault simulation test method and device and electronic equipment |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9411638B2 (en) * | 2013-12-19 | 2016-08-09 | International Business Machines Corporation | Application startup page fault management in a hardware multithreading environment |
-
2020
- 2020-11-27 CN CN202011364872.8A patent/CN114625433B/en active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103370704A (en) * | 2010-12-21 | 2013-10-23 | 赛贝斯股份有限公司 | Bulk initial download of mobile databases |
| CN102662714A (en) * | 2012-04-17 | 2012-09-12 | 中标软件有限公司 | Linux operation system and startup method thereof |
| CN103577212A (en) * | 2012-08-08 | 2014-02-12 | 腾讯科技(深圳)有限公司 | System starting preloading method and device |
| CN103677920A (en) * | 2013-12-11 | 2014-03-26 | 清华大学 | Critical application program identifying and starting accelerating method and system |
| CN104102695A (en) * | 2014-06-26 | 2014-10-15 | 晨星半导体股份有限公司 | Data processing method and smart device in startup process of smart device |
| CN104408209A (en) * | 2014-12-25 | 2015-03-11 | 中科创达软件股份有限公司 | File processing method, file processing device and electronic equipment in start-up process of mobile operating system |
| CN108694135A (en) * | 2017-03-31 | 2018-10-23 | 英特尔公司 | For the method and apparatus that persistently cache stores data in page cache |
| CN111897684A (en) * | 2020-07-15 | 2020-11-06 | 中国工商银行股份有限公司 | Disk fault simulation test method and device and electronic equipment |
Non-Patent Citations (4)
| Title |
|---|
| Aging-related performance anomalies in the apache storm stream processing system;Massimo Ficco;《Future Generation Computer Systems》;第86卷;975-994 * |
| Windows系统中Prefetch信息的提取与分析;李艳;《信息安全与技术》;第3卷(第05期);46-48 * |
| 一种面向富客户端应用的运行时自适应中间件;赵祺;《软件学报》;第24卷(第07期);1419-1435 * |
| 基于SSD高速缓存的桌面虚拟机交互性能优化方法;汪小林;《计算机应用与软件》;第28卷(第11期);1-6 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN114625433A (en) | 2022-06-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN108984225B (en) | Method and device for quickly starting hosted application | |
| US20200057660A1 (en) | Method and system for rendering user interfaces | |
| CN111240767A (en) | Component and page loading method, apparatus, electronic device and storage medium | |
| CN111400625B (en) | Page processing method and device, electronic equipment and computer readable storage medium | |
| CN113157477B (en) | Memory leakage attribution method, device, electronic equipment and storage medium | |
| CN111198777A (en) | Data processing method, device, terminal and storage medium | |
| CN111666516A (en) | Page loading method and device, electronic equipment and storage medium | |
| CN116028452A (en) | Application program storage management method, device, storage medium and product | |
| CN111400091B (en) | Factory setting restoration method, factory setting restoration device and mobile terminal | |
| CN116954947A (en) | Data request processing methods, devices, equipment and storage media | |
| CN117992204A (en) | Memory detection method, device, equipment and storage medium | |
| CN112631608B (en) | Compilation method, device, terminal and storage medium | |
| CN114328097A (en) | A file monitoring method, device, electronic device and storage medium | |
| WO2024222525A1 (en) | Operation method and apparatus for input method program, and electronic device and storage medium | |
| CN113127438B (en) | Method, apparatus, server and medium for storing data | |
| CN114625433B (en) | Application startup method and system | |
| CN112306683A (en) | Function hijacking method, device, medium and electronic equipment | |
| US9003364B2 (en) | Overriding system attributes and function returns in a software subsystem | |
| CN112631609B (en) | Compiling method, compiling device, compiling terminal and storage medium | |
| CN111625432A (en) | Page loading time consumption determination method and device and computer readable storage medium | |
| CN111831655B (en) | Data processing method, device, medium and electronic equipment | |
| WO2023273564A1 (en) | Virtual machine memory management method and apparatus, storage medium, and electronic device | |
| CN115242862A (en) | Network request control method, device, medium and electronic equipment | |
| CN115495124A (en) | Processing flow updating method, device, equipment, storage medium and program product | |
| CN116974732A (en) | Memory processing method, device, terminal equipment and medium |
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 |