WO2016192498A1 - 软件启动方法、终端及存储介质 - Google Patents

软件启动方法、终端及存储介质 Download PDF

Info

Publication number
WO2016192498A1
WO2016192498A1 PCT/CN2016/080552 CN2016080552W WO2016192498A1 WO 2016192498 A1 WO2016192498 A1 WO 2016192498A1 CN 2016080552 W CN2016080552 W CN 2016080552W WO 2016192498 A1 WO2016192498 A1 WO 2016192498A1
Authority
WO
WIPO (PCT)
Prior art keywords
startup
target software
read
file
files
Prior art date
Application number
PCT/CN2016/080552
Other languages
English (en)
French (fr)
Inventor
周王胜
Original Assignee
腾讯科技(深圳)有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 腾讯科技(深圳)有限公司 filed Critical 腾讯科技(深圳)有限公司
Priority to MYPI2017704027A priority Critical patent/MY193465A/en
Publication of WO2016192498A1 publication Critical patent/WO2016192498A1/zh
Priority to US15/721,950 priority patent/US10747550B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Definitions

  • the present invention relates to the field of computer technologies, and in particular, to a software startup method, a terminal, and a storage medium.
  • a software booting method a terminal, and a storage medium are provided.
  • a software startup method including:
  • the target software is launched based on data pre-read into memory.
  • a terminal for software startup comprising a memory and a processor, wherein the memory stores instructions, wherein when the instructions are executed by the processor, the processor performs the following steps:
  • the target software is launched based on data pre-read into memory.
  • One or more non-transitory computer readable storage media storing computer executable instructions, when executed by one or more processors, cause the one or more processors to perform the following steps:
  • the target software is launched based on data pre-read into memory.
  • FIG. 1 is a schematic structural diagram of an electronic device for implementing a software startup method in an embodiment
  • FIG. 2 is a schematic flow chart of a software startup method in an embodiment
  • FIG. 6 is a structural block diagram of a software starting device in an embodiment
  • FIG. 7 is a structural block diagram of a software starting device in another embodiment
  • Figure 8 is a block diagram showing the structure of a software starting device in still another embodiment
  • Figure 9 is a block diagram showing the structure of a software booting device in one embodiment.
  • an electronic device 100 includes a processor, a non-volatile storage medium, and a memory coupled by a system bus.
  • the processor has computing functionality and functionality to control operation of the entire electronic device 100, the processor being configured to perform a software boot method.
  • Non-volatile storage media include magnetic storage media, optical storage media, and flash storage media.
  • the non-volatile storage medium stores an operating system and a software boot device for implementing a software boot method.
  • Memory is used to provide caching for operating systems and software boot devices.
  • the electronic device 100 can be a desktop computer or a mobile terminal. Mobile terminals include mobile phones and tablets.
  • Pre-reading is a technique for speeding up the startup of a program process. By reading the main content of the target software, it takes a lot of time to read the data of the software when it starts up.
  • the process of opening the startup file of the target software and prefetching the data in the open startup file is called a read-ahead.
  • the number of read-aheads refers to the number of times the corresponding target software needs to open the startup file of the target software and pre-read the data in the open startup file at startup.
  • the number of single read-ahead files refers to the number of boot files that need to be opened and read-ahead during the startup process of the corresponding target software to open the target software startup file and pre-read the data in the open startup file.
  • Step 208 Open the startup file of the target software and pre-read the data into the memory according to the determined number of pre-reads and/or the number of single pre-read files.
  • the determined startup acceleration level is a first startup acceleration level; and step 208 includes: pre-reading data from all open startup files into the memory after opening all startup files of the target software.
  • the first start acceleration level corresponds to a heavy start acceleration level.
  • the system read-ahead function MmPrefetchPages is called to pre-read the data in the opened startup file into the memory.
  • the first startup acceleration level is mainly for some target software that is very time-consuming and has a lot of startup files, and the acceleration effect is obvious.
  • the pre-reading method can be used to accelerate the startup of the target software to the maximum extent, a large number of file read operations are also instantaneously executed, and the startup process of the target software itself is also A considerable number of file read operations are initiated, which causes the disk read offset to vibrate back and forth, resulting in a significant drop in the read efficiency of the file. Therefore, the boot process of the target software needs to be suspended at the first boot acceleration level. Avoiding the startup process of the target software and starting the acceleration mechanism simultaneously initiates a file read operation, thereby affecting the startup speed of the target software and affecting the startup acceleration effect. In contrast, the file read operation initiated when the acceleration is started at other startup acceleration levels is moderate, and the startup process may not be interfered.
  • the step of suspending the startup process of the target software includes: receiving, by a custom function registered to the operating system, a first notification issued by the system callback function interface when the startup process of the target software starts, and waiting;
  • the step of restoring the startup process includes: feeding back a second notification to the system callback function interface through the custom function, so that the operating system continues to run the startup process.
  • the determined startup acceleration level is a second startup acceleration level; step 208 includes: cyclically executing a startup file that opens the number of target software to a single number of pre-read files, and pre-reads each startup file that is opened. The data is stepped into memory until the data of the target software's full boot file is pre-read into memory.
  • the third start acceleration level corresponds to a light start acceleration level.
  • one pre-reading only opens one startup file for pre-reading.
  • the system pre-reading function MmPrefetchPages is called to pre-read the data in the opened startup file into the memory.
  • the third startup acceleration level is suitable for the startup acceleration of the target software with a relatively short startup time.
  • the startup file of the target software is 100
  • the startup acceleration level corresponding to the target software in the configuration information is the third startup acceleration level
  • when the target software starts first open a startup file and call the system read-ahead function. To pre-read the data into memory, then open another unread read-ahead file and call the system read-ahead function again to pre-read the data into memory and loop it until the data of the 100 boot files are pre-read. In memory.
  • the software startup method further includes: reading data from a startup file of the target software by a startup process of the target software; and the step 210 includes: reading data according to the startup process and pre-reading data in the memory. Start the target software.
  • the startup process includes two stages of a login phase and a startup phase of entering a game interface. Because the startup file needs to be read during the login phase and consumes less time, it can be accelerated by the startup acceleration method of the third startup acceleration level. This ensures that the startup file of about 10% is pre-read without affecting the login phase. .
  • the startup phase of entering the game interface since the consumption time is relatively long, it takes about 60 seconds before the acceleration, and the acceleration acceleration of the first startup acceleration level can be used in the startup phase, and the remaining is pre-read in the startup phase. 90% of the startup files, the startup phase takes only about 30 seconds after the acceleration is started.
  • the startup process of the target software is divided into different startup phases, and then the startup acceleration means of the most suitable startup acceleration level can be used according to the situation in each startup phase, so that the startup acceleration of the target software is more flexible and efficient.
  • the software startup method further includes the step of generating a configuration file, specifically including the following steps:
  • Step 302 The startup behavior parameter of the target software is calculated; the startup behavior parameter includes at least one of an original startup duration, a startup file number, a startup file size, a startup phase division, and a file read operation behavior attribute at startup.
  • the startup behavior parameter refers to a parameter indicating the characteristics of the target software at startup.
  • the original startup duration refers to the length of time required for the target software to start without using the startup acceleration means.
  • the number of startup files refers to the total number of startup files required by the target software at startup.
  • the startup file size includes the size of each startup file and the average size of each startup file.
  • the file read operation behavior attribute at startup includes the number of file read operations initiated by the target software at startup, and the time distribution of file read operations.
  • Step 304 Generate a corresponding startup acceleration level record into the configuration file according to the statistical startup behavior parameter.
  • step 202 specifically includes: reading configuration information from the configuration file.
  • the starting behavior parameter of the statistical target software may reflect the startup acceleration requirement of the target software, so that the corresponding startup acceleration level may be generated according to the statistical startup behavior parameter, and corresponding to the software identifier of the target software is recorded in the configuration file.
  • the target software with a longer initial boot time can use the first boot acceleration level, while the target software with a shorter original boot time can use the second or third boot acceleration level.
  • the target software with a large number of startup files or a large startup file can adopt the first startup acceleration level, and the target software with a small number of startup files or small startup files can adopt the second or third startup acceleration level.
  • the startup acceleration level can be configured in the startup phase.
  • the target software with a large number of file read operations can adopt the first startup acceleration level, and the target software with a small number of file read operations can adopt the second or third startup acceleration level.
  • the startup acceleration policy can be flexibly configured according to the startup behavior characteristics of the target software, so that the startup acceleration is more flexible and efficient.
  • the software startup method further includes: after obtaining the notification that the startup target software ends, reporting the startup acceleration result to the server; and starting the acceleration result includes: whether the startup acceleration is successful, whether all the startup files of the target software are pre-read. And at least one of the number of pre-read startup files.
  • the notification that the startup target software ends may be a notification that the target software is successfully started or a notification that the target software fails to be started.
  • the notification of the end of the startup target software issued by the acceleration driver component can be received through the communication process.
  • the report starts the acceleration result to the server, and the server can further analyze and improve according to the reported startup acceleration result, so that the preferred configuration information can be fed back.
  • a software startup method specifically includes the following steps:
  • Step 402 Read configuration information from the configuration file.
  • the electronic device 100 runs a communication process and an acceleration drive component, and the acceleration drive component is ready to receive an acceleration request of the communication process.
  • the electronic device 100 acquires configuration information through a communication process and transmits an acceleration request to the acceleration driving component.
  • the communication process is used to read the relevant content in the configuration file and then communicate with the acceleration driver process, such as controlling the file read-ahead interface used by the acceleration driver process, whether to suspend the process, and the like.
  • Step 404 Determine a startup acceleration level of the target software according to the configuration information.
  • the electronic device 100 may receive an acceleration request of the communication process by the acceleration driving component, and the acceleration driving component determines the startup acceleration level of the target software according to the acceleration request, and selects a corresponding file pre-reading interface to perform startup acceleration.
  • Step 406 (1), if it is determined that the startup acceleration level of the target software is the first startup acceleration level, the number of pre-reads corresponding to the first startup acceleration level is one.
  • Step 406 (2) if it is determined that the startup acceleration level of the target software is the second startup acceleration level, the number of single pre-read files corresponding to the second startup acceleration level is obtained; the number of the single pre-read files is greater than 1.
  • Step 406 (3) if it is determined that the startup acceleration level of the target software is the third startup acceleration level, the number of the single pre-read files corresponding to the third startup acceleration level is 1.
  • Step 408 suspending the startup process of the target software, opening all the startup files of the target software, pre-reading the data from the open startup files to the memory, and restoring the startup process.
  • the first notification sent by the system callback function interface when the startup process of the target software is started may be received by the custom function registered to the operating system and waited to suspend the startup process of the target software.
  • the second notification is fed back to the system callback function interface through the custom function, so that the operating system continues to run the startup process to implement the recovery of the suspended startup process.
  • Step 408 (3) cyclically executing a startup file of the target software, and prefetching the data in the open startup file into the memory until the data of all the startup files of the target software is pre-read into the memory.
  • Step 410 Start the target software according to the data pre-read into the memory.
  • a software boot device 600 having functional modules that implement the software boot method of the various embodiments described above.
  • the software boot device 600 includes:
  • the configuration information obtaining module 601 is configured to obtain configuration information.
  • the configuration information is information on a configuration in which the startup acceleration mode is adopted by the software startup.
  • the configuration information obtaining module 601 is configured to read configuration information from a configuration file. Users can customize the configuration file to configure different startup acceleration methods for different software.
  • the configuration information obtaining module 601 is configured to obtain configuration information from a server.
  • the configuration information obtaining module 601 is configured to acquire configuration information and notify the acceleration driving component through the communication process.
  • the communication process is used to communicate with the boot process of the operating system, the accelerated drive component, and the target software.
  • the acceleration driver component is used to accelerate the startup of the target software.
  • the acceleration level determination module 602 is configured to determine a startup acceleration level of the target software according to the configuration information.
  • the startup acceleration level can be divided as needed to configure different startup acceleration levels for different software.
  • the target software refers to the software that needs to be accelerated by the startup.
  • the target software can be any software, including: game software, communication software, engineering design software, image processing software, and programming software.
  • the activation acceleration levels include: a mild acceleration level, a medium acceleration level, and a severe acceleration level.
  • the configuration information includes a correspondence between the software identifier and the startup acceleration level, so that the startup acceleration level of the target software can be found according to the correspondence.
  • the configuration information includes a correspondence between the software identifier and the acceleration window identifier, so that the acquisition module 603 or the pre-read module 604 can be notified when the specified window of the target software appears according to the correspondence.
  • the startup acceleration level determination module 602 is configured to determine a startup acceleration level of the target software based on the configuration information by the acceleration drive component.
  • the obtaining module 603 is configured to obtain the number of pre-reads corresponding to the determined startup acceleration level and/or the number of single pre-read files.
  • Pre-reading is a technique for speeding up the startup of a program process. By reading the main content of the target software, it takes a lot of time to read the data of the software when it starts up.
  • the process of opening the startup file of the target software and prefetching the data in the open startup file is called a read-ahead.
  • the number of read-aheads refers to the number of times the corresponding target software needs to open the startup file of the target software and pre-read the data in the open startup file at startup.
  • the number of single read-ahead files refers to the number of boot files that need to be opened and read-ahead during the startup process of the corresponding target software to open the target software startup file and pre-read the data in the open startup file.
  • the acquisition module 603 is configured to obtain the number of pre-reads and/or the number of single pre-read files corresponding to the determined startup acceleration level by the acceleration driving component.
  • the pre-reading module 604 is configured to open the startup file of the target software and pre-read the data into the memory according to the determined number of pre-reads and/or the number of single pre-read files.
  • the startup file of the target software is opened once or several times and the system read-ahead function is called for pre-reading. If the number of pre-reading times is small, there will be more startup files that need to be opened each time, which will result in a large number of concurrent file reading operations, but the startup acceleration effect is obvious; if the number of pre-reading times is large, there are fewer startup files that need to be opened each time, and concurrent files There are fewer read operations, but the startup acceleration is weaker.
  • the startup file is the file that the target software needs at startup.
  • the pre-reading module 604 can be used to call the system function ZwOpenFile of the Windows operating system for opening a file to open a startup file, and to call a system function ZwCreateSection for creating a shared memory area to create a shared memory area section, and calculate a startup file that needs to be read in advance.
  • the information of the page block to implement initialization of the boot file that will be read ahead.
  • the information of the page block includes the page block size and the file offset attribute. After initializing the startup file that needs to be read-ahead, you can pre-read the data in the open startup file into memory by calling the system read-ahead function MmPrefetchPages.
  • the file read-ahead interface corresponding to each boot acceleration level may be encapsulated according to a system pre-read function, and each file read-ahead interface is implemented according to the determined number of pre-reads and/or the number of single pre-read files.
  • the function of opening the startup file of the target software and pre-reading the data into the memory In this way, it is only necessary to call the file read-ahead interface corresponding to the determined startup acceleration level to process the startup file of the target software.
  • the pre-read module 604 is configured to, by accelerating the drive component, to open the boot file of the target software and pre-read the data into the memory in accordance with the determined number of pre-reads and/or the number of single pre-read files.
  • the startup module 605 is configured to start the target software according to the data pre-read into the memory.
  • the data pre-read into the memory can be quickly called, and the target software can be activated according to the data read in advance into the memory to start the target software.
  • the determined startup acceleration level is the first startup acceleration level; the pre-reading module 604 is further configured to pre-read data from the open startup files into the memory after opening all the startup files of the target software.
  • the first start acceleration level corresponds to a heavy start acceleration level.
  • the system read-ahead function MmPrefetchPages is called to pre-read the data in the opened startup file into the memory.
  • the first startup acceleration level is mainly for some target software that is very time-consuming and has a lot of startup files, and the acceleration effect is obvious.
  • the pre-reading manner can be utilized to accelerate the startup of the target software to the greatest extent.
  • the software boot device 600 further includes a boot process suspend module 606 and a boot process recovery module 607.
  • the boot process suspend module 606 suspends the boot process of the target software before opening all boot files of the target software.
  • the startup process recovery module 607 is configured to resume the boot process after prefetching data from the open boot files into the memory.
  • the pre-reading method can be used to accelerate the startup of the target software to the maximum extent, a large number of file read operations are also instantaneously executed, and the startup process of the target software itself is also A considerable number of file read operations are initiated, which causes the disk read offset to vibrate back and forth, resulting in a significant drop in the read efficiency of the file. Therefore, the boot process of the target software needs to be suspended at the first boot acceleration level. Avoiding the startup process of the target software and starting the acceleration mechanism simultaneously initiates a file read operation, thereby affecting the startup speed of the target software and affecting the startup acceleration effect. In contrast, the file read operation initiated when the acceleration is started at other startup acceleration levels is moderate, and the startup process may not be interfered.
  • the boot process recovery module 607 can be configured to determine a point in time at which to resume the boot process based on the configuration information, thereby restoring the boot process when the point in time is reached.
  • the time point may be a time point that has elapsed since the startup process is started, or may be a time point when the preset process is suspended from the start of the startup process, or may be a time point when the specified event occurs.
  • the boot process suspend module 606 is further configured to receive a first notification issued by the system callback function interface when the boot process of the target software is started and wait by a custom function registered to the operating system.
  • the startup process recovery module 607 is further configured to feed back a second notification to the system callback function interface through the custom function, so that the operating system continues to run the startup process.
  • the synchronization feature of the operating system's system callback function interface PsSetCreateProcessNotifyRoutine is utilized, that is, the system callback function interface sends a message and receives feedback on the message, and then continues. Actions.
  • a custom function is registered to the operating system in advance, so that the custom function can be called by the system callback function interface.
  • the custom function is called through the system callback function interface, so that the custom function receives the first notification, and the custom function only needs to wait for an empty time to suspend the startup process.
  • the custom function can continue to run the startup process to implement the recovery startup process.
  • the determined startup acceleration level is a second startup acceleration level; the pre-reading module 604 is further configured to cyclically execute a startup file that opens the target software to the number of single pre-read files, and pre-reads each time the file is opened. The data in the startup file is transferred to the memory until the data of all the startup files of the target software is pre-read into the memory.
  • the second startup acceleration level corresponds to the medium startup acceleration level, and the second startup acceleration level is a dynamically configured startup acceleration level.
  • the specific configuration information may include a single pre-reading file number, so that the second startup acceleration level is pre- The number of reads is controllable.
  • the pre-reading module 604 can be used to open the startup file of the target software multiple times and pre-read the data.
  • Each pre-reading needs to open the startup file in the number of single pre-reading files, and then call the system read-ahead function MmPrefetchPages.
  • MmPrefetchPages To pre-read these open startup files, then open another startup file with the number of single read-ahead files, and then call the system read-ahead function MmPrefetchPages to pre-read these open startup files, and so on until the target is reached.
  • the data of all software startup files is pre-read into memory.
  • the number of read-aheads is the same as the number of times the system read-ahead function is called.
  • the determined startup acceleration level is a third startup acceleration level; the pre-reading module 604 is further configured to cyclically execute a startup file of the open target software, and pre-read the data in the opened startup file into the memory until The data of all the startup files of the target software is pre-read into the memory.
  • the third start acceleration level corresponds to a light start acceleration level.
  • the specific pre-reading module 604 is configured to call the system read-ahead function MmPrefetchPages to pre-read the open startup file every time a startup file of the target software is initialized.
  • the data is in memory.
  • the third startup acceleration level is suitable for the startup acceleration of the target software with a relatively short startup time.
  • the startup module 605 is further configured to launch the target software according to data read from the in-memory data and the boot process of the target software from the boot file.
  • the embodiment is mainly applicable to the second startup acceleration level and the third startup acceleration level.
  • the file read operations initiated under the two startup acceleration levels are moderate, and the startup of the target software can be performed while the startup acceleration is implemented.
  • the process reads data from the startup file of the target software. Further, the boot process starts when the target software is started, based on the data read by the boot process and the data pre-read into the memory. This can further speed up the startup and reduce the startup time.
  • the startup acceleration level determination module 602 is further configured to determine a startup phase division of the target software according to the configuration information, and determine a startup acceleration level of each startup phase.
  • the pre-reading module 604 is further configured to use the pre-reading times corresponding to the startup acceleration level of the corresponding startup phase and/or the number of single pre-reading files in each startup phase, respectively, to open the startup file of the target software and pre-read the data to the memory. in.
  • the startup process of the target software may be divided according to the characteristics of the target software, such as a network game software, and the startup process may be divided into a login phase and a startup phase of entering the game interface; and an application software, a startup process, for example. It can be divided into the registration phase and the startup phase of entering the application interface, which are not enumerated here.
  • the configuration information may include a startup phase division of the target software.
  • the configuration information may include a window identifier of each target startup phase, thereby indicating that the corresponding startup window is entered when the corresponding window appears.
  • the startup process of the target software is divided into different startup phases, and then the startup acceleration means of the most suitable startup acceleration level can be used according to the situation in each startup phase, so that the startup acceleration of the target software is more flexible and efficient.
  • the software startup device 600 further includes: a startup behavior parameter statistics module 608 and a recording module 609.
  • the startup behavior parameter statistics module 608 is configured to calculate a startup behavior parameter of the target software; the startup behavior parameter includes at least one of an original startup duration, a startup file number, a startup file size, a startup phase division, and a file read operation behavior attribute at startup. .
  • the startup behavior parameter refers to a parameter indicating the characteristics of the target software at startup.
  • the original startup duration refers to the length of time required for the target software to start without using the startup acceleration means.
  • the number of startup files refers to the total number of startup files required by the target software at startup.
  • the startup file size includes the size of each startup file and the average size of each startup file.
  • the file read operation behavior attribute at startup includes the number of file read operations initiated by the target software at startup, and the time distribution of file read operations.
  • the recording module 609 is configured to generate a corresponding startup acceleration level record into the configuration file according to the statistical startup behavior parameter.
  • the configuration information obtaining module 601 is further configured to read the configuration information from the configuration file.
  • the starting behavior parameter of the statistical target software may reflect the startup acceleration requirement of the target software, so that the corresponding startup acceleration level may be generated according to the statistical startup behavior parameter, and corresponding to the software identifier of the target software is recorded in the configuration file.
  • the target software with a longer initial boot time can use the first boot acceleration level, while the target software with a shorter original boot time can use the second or third boot acceleration level.
  • the target software with a large number of startup files or a large startup file can adopt the first startup acceleration level, and the target software with a small number of startup files or small startup files can adopt the second or third startup acceleration level.
  • the startup acceleration level can be configured in the startup phase.
  • the target software with a large number of file read operations can adopt the first startup acceleration level, and the target software with a small number of file read operations can adopt the second or third startup acceleration level.
  • the startup acceleration policy can be flexibly configured according to the startup behavior characteristics of the target software, so that the startup acceleration is more flexible and efficient.
  • the software startup device 600 further includes: a reporting module 610, configured to report the startup acceleration result to the server after obtaining the notification that the startup target software ends; and the starting the acceleration result includes: starting Whether the acceleration is successful, whether at least one of the total startup file of the target software and the number of pre-read startup files is pre-read.
  • the notification that the startup target software ends may be a notification that the target software is successfully started or a notification that the target software fails to be started.
  • the notification of the end of the startup target software issued by the acceleration driver component can be received through the communication process.
  • the report starts the acceleration result to the server, and the server can further analyze and improve according to the reported startup acceleration result, so that the preferred configuration information can be fed back.
  • the startup acceleration level corresponding to the target software in the configuration information may be changed. If the boot files of the target software cannot be read in advance, you can change the configuration of the suspended process corresponding to the target software in the configuration information. If the number of pre-reading startup files is small, and the startup acceleration level corresponding to the target software is the first startup acceleration level, the first startup acceleration level corresponding to the target software in the configuration information may be changed to the second or third startup acceleration level.
  • the software startup device 600 described above divides different startup acceleration levels in advance, and can determine the startup acceleration level of the target software through the configuration information. Depending on the number of prefetches corresponding to the startup acceleration level and/or the number of single prefetch files, it is determined that the startup file of the target software is opened one or more times, thereby prefetching the data in the opened startup file into the memory. By pre-reading the startup file of the target software, the startup speed of the target software can be significantly accelerated, and the startup time can be reduced.
  • the number of times the startup file is opened can be flexibly adjusted, thereby controlling the number of file read operations per pre-read, applicable to various softwares. Different startup acceleration requirements, strong compatibility.
  • the storage medium may be a magnetic disk, an optical disk, or a read-only storage memory (Read-Only)
  • a nonvolatile storage medium such as a memory or a ROM, or a random access memory (RAM).

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种软件启动方法,包括:获取配置信息;根据所述配置信息确定目标软件的启动加速等级;获取确定的启动加速等级所对应的预读次数和/或单次预读文件数量;根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中;根据预读到内存中的数据启动所述目标软件。

Description

软件启动方法、终端及存储介质
本申请要求于 2015 年 6 月 2 日提交中国专利局,申请号为 2015102959008 ,发明名称为'软件启动方法和装置'的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
【技术领域】
本发明涉及计算机技术领域,特别是涉及一种软件启动方法、终端及存储介质。
【背景技术】
计算机技术的发展为人们的生活、工作带来了巨大的影响,人们可以在计算机或者移动终端上安装各种软件来实现各种功能,比如单机游戏、在线游戏、即时通信或者设计作品等。而软件在使用时需要启动,进而进入到可操作阶段,从开始启动软件到进入到软件的可操作阶段的过程需要花费时间,称为启动时间。不同的软件的启动时间不同,一些大型游戏或者工程设计类软件的启动时间可能有1分钟甚至更多,启动时间过长会导致软件难以及时做出响应,效率低下。
【发明内容】
根据本申请的各种实施例,提供一种软件启动方法、终端及存储介质。
一种软件启动方法,包括:
获取配置信息;
根据所述配置信息确定目标软件的启动加速等级;
获取确定的启动加速等级所对应的预读次数和/或单次预读文件数量;
根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中;及
根据预读到内存中的数据启动所述目标软件。
一种用于软件启动的终端,包括内存和处理器,所述内存中储存有指令,其特征在于,所述指令被所述处理器执行时,使得所述处理器执行以下步骤:
获取配置信息;
根据所述配置信息确定目标软件的启动加速等级;
获取确定的启动加速等级所对应的预读次数和/或单次预读文件数量;
根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中;及
根据预读到内存中的数据启动所述目标软件。
一个或多个存储有计算机可执行指令的非易失性计算机可读存储介质,所述计算机可执行指令被一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:
获取配置信息;
根据所述配置信息确定目标软件的启动加速等级;
获取确定的启动加速等级所对应的预读次数和/或单次预读文件数量;
根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中;及
根据预读到内存中的数据启动所述目标软件。
本发明的一个或多个实施例的细节在下面的附图和描述中提出。本发明的其它特征、目的和优点将从说明书、附图以及权利要求书变得明显。
【附图说明】
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中用于实现软件启动方法的电子设备的结构示意图;
图2为一个实施例中软件启动方法的流程示意图;
图3为一个实施例中生成配置文件的步骤的流程示意图;
图4为另一个实施例中软件启动方法的流程示意图;
图5为再一个实施例中软件启动方法的流程示意图;
图6为一个实施例中软件启动装置的结构框图;
图7为另一个实施例中软件启动装置的结构框图;
图8为再一个实施例中软件启动装置的结构框图;
图9为一个实施例中软件启动装置的结构框图。
【具体实施方式】
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
Windows操作系统提供了用于预读文件的内核函数MmPrefetchPages,称其为系统预读函数,通过该系统预读函数可以将文件中的数据预读到内存中。本发明实施例基于该系统预读函数产生不同启动加速等级的启动加速方式,从而在不同的应用场景下,采用与应用场景适用的启动加速方式来加速启动目标软件,减少目标软件的启动时间。
如图1所示,在一个实施例中,提供了一种电子设备100,包括通过系统总线连接的处理器、非易失性存储介质和内存。其中处理器具有计算功能和控制整个电子设备100工作的功能,该处理器被配置为执行一种软件启动方法。非易失性存储介质包括磁存储介质、光存储介质和闪存式存储介质。非易失性存储介质存储有操作系统和一种软件启动装置,该软件启动装置用于实现一种软件启动方法。内存用来为操作系统和软件启动装置提供高速缓存。电子设备100可以是台式计算机,还可以是移动终端。移动终端包括手机和平板电脑。
如图2所示,在一个实施例中,提供了一种软件启动方法,本实施例以该方法应用于上述图1中的电子设备100来举例说明。该方法具体包括如下步骤:
步骤202,获取配置信息。
具体地,配置信息是对软件启动采用何种启动加速方式所进行的配置的信息。在一个实施例中,步骤202包括:从配置文件中读取配置信息。用户可以自定义配置文件,从而为不同的软件配置不同的启动加速方式。在一个实施例中,步骤202包括:从服务器获取配置信息。
在一个实施例中,步骤202包括:通过通信进程获取配置信息并通知加速驱动组件。该通信进程用于与操作系统、加速驱动组件和目标软件的启动进程通信。其中加速驱动组件用于实现对目标软件的启动加速。
步骤204,根据配置信息确定目标软件的启动加速等级。
具体地,可以根据需要划分启动加速等级,从而为不同的软件配置不同的启动加速等级。其中目标软件是指需要进行启动加速的软件。目标软件可以是任意软件,包括:游戏软件、通信软件、工程设计软件、图像处理软件和编程软件等。
在一个实施例中,启动加速等级包括:轻度加速等级、中度加速等级和重度加速等级。在一个实施例中,配置信息包括软件标识和启动加速等级的对应关系,从而可以根据该对应关系查找到目标软件的启动加速等级。在一个实施例中,配置信息包括软件标识和加速窗口标识的对应关系,从而可以根据该对应关系,在目标软件的指定窗口出现时开始执行步骤204或者步骤206。
在一个实施例中,步骤204包括:通过加速驱动组件以根据配置信息确定目标软件的启动加速等级。
步骤206,获取确定的启动加速等级所对应的预读次数和/或单次预读文件数量。
预读是一种加速程序进程启动速度的技术,通过读取目标软件的主要内容以备该软件启动时耗费大量时间来读取本身的数据。将打开目标软件的启动文件并预读打开的启动文件中的数据的过程称为一次预读。预读次数是指相应的目标软件在启动时需要进行打开目标软件的启动文件并预读打开的启动文件中的数据的过程的次数。单次预读文件数量是指相应的目标软件在启动时进行一次打开目标软件的启动文件并预读打开的启动文件中的数据的过程中需要打开和预读的启动文件的数量。
在一个实施例中,步骤206包括:通过加速驱动组件获取确定的启动加速等级所对应的预读次数和/或单次预读文件数量。
步骤208,根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中。
具体地,根据确定的预读次数和/或单次预读文件数量,可以确定一次性还是分几次打开目标软件的启动文件并调用系统预读函数进行预读。若预读次数少,则每次需要打开的启动文件多,会导致大量并发的文件读操作,但启动加速效果明显;若预读次数多,则每次需要打开的启动文件少,并发的文件读操作少,但启动加速效果较弱。启动文件是指目标软件在启动时需要的文件。
电子设备100可调用Windows操作系统用于打开文件的系统函数ZwOpenFile来打开启动文件,并调用于创建共享内存区的系统函数ZwCreateSection来创建共享内存区section,并计算所需要预读的启动文件的页块的信息,以实现将需预读的启动文件的初始化。其中页块的信息包括页块大小和文件偏移属性。将需要预读的启动文件初始化后,就可以通过调用系统预读函数MmPrefetchPages来预读打开的启动文件中的数据到内存中。
在一个实施例中,可以根据系统预读函数封装与每个启动加速等级对应的文件预读接口,每个文件预读接口实现根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中的功能。这样仅需要调用确定的启动加速等级所对应的文件预读接口来处理目标软件的启动文件即可。
在一个实施例中,步骤208包括:通过加速驱动组件以根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中。
步骤210,根据预读到内存中的数据启动目标软件。
具体地,预读到内存中的数据可以被快速调用,这里根据预读到内存中的数据启动目标软件,可以实现目标软件的加速启动。
上述软件启动方法,事先划分不同的启动加速等级,通过配置信息可以确定目标软件的启动加速等级。根据启动加速等级所对应的预读次数和/或单次预读文件数量,可以确定单次或多次来打开目标软件的启动文件,从而将打开的启动文件中的数据预读到内存中。这样通过预读目标软件的启动文件,可以显著加快目标软件的启动速度,减少启动时间。而且,通过调整各启动加速等级对应的预读次数和/或单次预读文件数量,可以灵活调整打开启动文件的次数,从而可以控制每次预读的文件读操作数量,适用于各种软件不同的启动加速需求,兼容性强。
在一个实施例中,确定的启动加速等级为第一启动加速等级;步骤208包括:打开目标软件的全部启动文件后,从打开的全部启动文件中预读数据到内存中。
具体地,第一启动加速等级对应重度启动加速等级。本实施例中,一次性初始化目标软件的全部启动文件后,调用一次系统预读函数MmPrefetchPages来预读打开的启动文件中的数据到内存中。第一启动加速等级主要针对一些非常耗时、启动文件很多的目标软件,加速效果明显。
本实施例中,通过一次性打开目标软件的全部启动文件后进行预读,可以最大程度地利用预读的方式来对目标软件进行启动加速。
在一个实施例中,在打开目标软件的全部启动文件后,从打开的全部启动文件中预读数据到内存中的步骤之前,还包括:将目标软件的启动进程挂起;且在打开目标软件的全部启动文件后,从打开的全部启动文件中预读数据到内存中的步骤之后,还包括:恢复启动进程。
具体地,考虑到重度启动加速等级虽然可以最大程度地利用预读的方式来对目标软件进行启动加速,但也会瞬间并发非常多的文件读操作,而此时目标软件的启动进程本身也会发起相当多的文件读操作,这时会引起磁盘读偏移来回剧烈震动,导致文件的读效率大幅下降,所以这里需要在第一启动加速等级的情况下将目标软件的启动进程挂起,从而避免目标软件的启动进程与启动加速机制同时发起文件读操作从而影响到目标软件的启动速度,影响启动加速效果。相比之下,其它启动加速等级下启动加速时发起的文件读操作较为缓和,可以不对启动进程进行干预。
在一个实施例中,可以根据配置信息确定恢复启动进程的时间点,从而在达到该时间点时恢复启动进程。该时间点可以是自启动进程启动起经过预设时长的时间点,也可以是自启动进程挂起开始经过预设时长的时间点,也可以是指定事件发生时的时间点。
在一个实施例中,将目标软件的启动进程挂起的步骤包括:通过注册到操作系统的自定义函数,接收系统回调函数接口在目标软件的启动进程启动时发出的第一通知并等待;且恢复启动进程的步骤,包括:通过自定义函数向系统回调函数接口反馈第二通知,使操作系统继续运行启动进程。
具体地,为了实现将目标软件的启动进程挂起,利用了操作系统的系统回调函数接口PsSetCreateProcessNotifyRoutine的同步特性,即该系统回调函数接口发出一个消息后接收到对该消息的反馈后才会继续后续的动作。本实施例中,预先将一种自定义函数注册到操作系统,使得该自定义函数可以被系统回调函数接口调用。这样操作系统在启动目标软件的启动进程时,通过系统回调函数接口调用该自定义函数,这样自定义函数会接收到第一通知,自定义函数只需进行空等待就可以实现将启动进程挂起。进一步地,通过自定义函数向系统回调函数接口反馈第二通知,就可以使得操作系统继续运行启动进程,实现恢复启动进程。
在一个实施例中,确定的启动加速等级为第二启动加速等级;步骤208包括:循环执行打开目标软件的数量为单次预读文件数量的启动文件,并预读每次打开的启动文件中的数据到内存中的步骤,直至将目标软件全部启动文件的数据预读到内存中。
第二启动加速等级对应中度启动加速等级,第二启动加速等级是一种可动态配置的启动加速等级,具体配置信息可以包括单次预读文件数量,从而使得第二启动加速等级下的预读次数是可控的。
具体地,电子设备100可以分多次打开目标软件的启动文件并预读数据,每次预读需要先打开数量为单次预读文件数量的启动文件,然后调用一次系统预读函数MmPrefetchPages来预读这些打开的启动文件,然后再打开另外的数量为单次预读文件数量的启动文件,然后再调用一次系统预读函数MmPrefetchPages来预读这些打开的启动文件,如此反复,直至将目标软件全部启动文件的数据预读到内存中。预读次数与调用系统预读函数的次数是相同的。
举例说明,若配置信息中目标软件对应的启动加速等级为第二启动加速等级,且对应的单次预读文件数量为50,且目标软件的启动文件总数量为100,则相应的预读次数为2,表示调用系统预读函数2次。具体在目标软件启动时,先打开50个启动文件并调用一次系统预读函数来预读数据到内存中,然后再打开剩余的50个启动文件并再次调用系统预读函数来预读数据到内存中。
在一个实施例中,确定的启动加速等级为第三启动加速等级;步骤208包括:循环执行打开目标软件的一个启动文件,并预读打开的启动文件中的数据到内存中的步骤,直至将目标软件全部启动文件的数据预读到内存中。
具体地,第三启动加速等级对应轻度启动加速等级。本实施例中,一次预读仅打开一个启动文件进行预读,具体每初始化目标软件的一个启动文件,就调用一次系统预读函数MmPrefetchPages来预读打开的启动文件中的数据到内存中。第三启动加速等级适用于启动时间比较短的目标软件的启动加速。
举例说明,若目标软件的启动文件为100个,且配置信息中目标软件对应的启动加速等级为第三启动加速等级,则在目标软件启动时,先打开一个启动文件并调用一次系统预读函数来预读数据到内存中,然后再打开另一个未预读的启动文件并再次调用系统预读函数来预读数据到内存中,循环执行,直至将这100个启动文件的数据均预读到内存中。
本实施例中,通过每次打开目标软件的一个启动文件进行预读来对目标软件进行启动加速,可以避免并发大量的文件读操作,而且可以同时对多个目标软件进行启动加速。
在一个实施例中,该软件启动方法还包括:通过目标软件的启动进程从目标软件的启动文件中读取数据;且步骤210包括:根据启动进程读取的数据和预读到内存中的数据启动目标软件。
具体地,本实施例主要适用于第二启动加速等级和第三启动加速等级的情形,这两种启动加速等级下发起的文件读操作较为缓和,可以在实施启动加速的同时,目标软件的启动进程从目标软件的启动文件中读取数据。进而,启动进程在启动目标软件时,根据启动进程所读取的数据和预读到内存中的数据进行启动。这样可以进一步加快启动速度,减少启动时间。
在一个实施例中,步骤204包括:根据配置信息确定目标软件的启动阶段划分,并确定各启动阶段的启动加速等级;且步骤208包括:在各启动阶段,分别采用相应启动阶段的启动加速等级对应的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中。
具体地,目标软件的启动过程可以根据目标软件的特性作不同的划分,比如一种网络游戏软件,启动过程可以划分为登录阶段和进入游戏界面的启动阶段;还比如一种应用软件,启动过程可以划分为注册阶段和进入应用界面的启动阶段,在此不一一列举。配置信息可以包括目标软件的启动阶段划分,比如配置信息可以包括各目标启动阶段的窗口标识,从而在相应的窗口出现时表示进入相应的启动阶段。
举例说明,一种多人对战网络游戏软件,启动过程包括登录阶段和进入游戏界面的启动阶段两个阶段。由于登录阶段需要读取的启动文件少,消耗的时间少,可以采用第三启动加速等级的启动加速手段进行加速,这样可以保证不影响登录阶段的时间前提下,预读10%左右的启动文件。而在进入游戏界面的启动阶段,由于消耗的时间相对较长,加速前需要60秒左右,可以在该启动阶段采用第一启动加速等级的启动加速手段进行加速,在该启动阶段预读完剩余的90%的启动文件,启动加速后该启动阶段仅需要30秒左右。
本实施例中,将目标软件的启动过程划分为不同的启动阶段,然后在各个启动阶段可以根据情况使用最合适的启动加速等级的启动加速手段,使得目标软件的启动加速更加灵活、高效。
如图3所示,在一个实施例中,该软件启动方法还包括生成配置文件的步骤,具体包括以下步骤:
步骤302,统计目标软件的启动行为参数;启动行为参数包括:原始启动时长、启动文件数量、启动文件大小、启动阶段划分以及启动时文件读操作行为属性中的至少一种。
具体地,启动行为参数是指表示目标软件在启动时的特性的参数。其中原始启动时长是指在不采用启动加速手段的前提下,目标软件启动所需要的时间长度。启动文件数量是指目标软件的在启动时需要的启动文件的总数量。启动文件大小包括每个启动文件的大小以及各启动文件的平均大小。启动时文件读操作行为属性包括目标软件在启动时发起的文件读操作数量、文件读操作的时间分布等。
步骤304,根据统计的启动行为参数生成相应的启动加速等级记录到配置文件中。且步骤202具体包括:从配置文件中读取配置信息。
具体地,统计的目标软件的启动行为参数可以反映出目标软件的启动加速需求,从而可以根据统计的启动行为参数生成相应的启动加速等级,并与目标软件的软件标识对应记录到配置文件中。
比如,原始启动时长较长的目标软件可以采用第一启动加速等级,而原始启动时长较短的目标软件则可以采用第二或者第三启动加速等级。启动文件数量多或者启动文件大的目标软件可以采用第一启动加速等级,而启动文件数量少或者启动文件小的目标软件可以采用第二或者第三启动加速等级。根据启动阶段划分可以分启动阶段配置启动加速等级。文件读操作数量较多的目标软件可以采用第一启动加速等级,文件读操作数量较少的目标软件可以采用第二或者第三启动加速等级。
本实施例中,通过统计目标软件的启动行为参数并据以生成相应的启动加速等级记录到配置文件中,可以根据目标软件的启动行为特性灵活配置启动加速策略,使得启动加速更加灵活以及高效。
在一个实施例中,该软件启动方法还包括:获取到启动目标软件结束的通知后,上报启动加速结果到服务器;启动加速结果包括:启动加速是否成功,是否预读了目标软件的全部启动文件和预读的启动文件数量中的至少一种。
具体地,启动目标软件结束的通知可以是启动目标软件成功的通知或者启动目标软件失败的通知。可以通过通信进程接收加速驱动组件发出的启动目标软件结束的通知。上报启动加速结果到服务器,服务器可以根据上报的启动加速结果做进一步分析和改进,从而可以反馈优选的配置信息。
具体若启动加速失败,则可以更改配置信息中目标软件对应的启动加速等级。若未能预读目标软件的全部启动文件,则可以更改配置信息中目标软件对应的是否挂起进程的配置。若预读的启动文件数量较少,而目标软件对应的启动加速等级为第一启动加速等级,则可以更改配置信息中目标软件对应的第一启动加速等级为第二或者第三启动加速等级。
如图4所示,在一个实施例中,一种软件启动方法,具体包括如下步骤:
步骤402,从配置文件中读取配置信息。
具体地,参照图5,电子设备100运行通信进程和加速驱动组件,且加速驱动组件准备接收通信进程的加速请求。电子设备100通过通信进程获取配置信息,并向加速驱动组件发送加速请求。通信进程用于读取配置文件中的相关内容,然后和加速驱动进程通信,比如控制加速驱动进程采用何种文件预读接口、是否挂起进程等。
步骤404,根据配置信息确定目标软件的启动加速等级。
具体地,电子设备100可以通过加速驱动组件接收通信进程的加速请求,加速驱动组件根据该加速请求确定目标软件的启动加速等级,并选择相应的文件预读接口进行启动加速。
步骤406(1),若确定目标软件的启动加速等级为第一启动加速等级,则获取第一启动加速等级所对应的预读次数为1次。
步骤406(2),若确定目标软件的启动加速等级为第二启动加速等级,则获取第二启动加速等级所对应的单次预读文件数量;该单次预读文件数量大于1。
步骤406(3),若确定目标软件的启动加速等级为第三启动加速等级,则获取第三启动加速等级所对应的单次预读文件数量为1。
步骤408(1),将目标软件的启动进程挂起,打开目标软件的全部启动文件后,从打开的全部启动文件中预读数据到内存中,恢复启动进程。
具体地,可以通过注册到操作系统的自定义函数,接收系统回调函数接口在目标软件的启动进程启动时发出的第一通知并等待,以实现将目标软件的启动进程挂起。通过自定义函数向系统回调函数接口反馈第二通知,使操作系统继续运行启动进程,以实现恢复挂起的启动进程。
步骤408(2),循环执行打开目标软件的数量为单次预读文件数量的启动文件,并预读每次打开的启动文件中的数据到内存中的步骤,直至将目标软件全部启动文件的数据预读到内存中。
步骤408(3),循环执行打开目标软件的一个启动文件,并预读打开的启动文件中的数据到内存中的步骤,直至将目标软件全部启动文件的数据预读到内存中。
步骤410,根据预读到内存中的数据启动目标软件。
如图6所示,在一个实施例中,提供了一种软件启动装置600,具有实现上述各个实施例的软件启动方法的功能模块。该软件启动装置600包括:
配置信息获取模块601,用于获取配置信息。
具体地,配置信息是对软件启动采用何种启动加速方式所进行的配置的信息。在一个实施例中,配置信息获取模块601用于从配置文件中读取配置信息。用户可以自定义配置文件,从而为不同的软件配置不同的启动加速方式。在一个实施例中,配置信息获取模块601用于从服务器获取配置信息。
在一个实施例中,配置信息获取模块601用于通过通信进程获取配置信息并通知加速驱动组件。该通信进程用于与操作系统、加速驱动组件和目标软件的启动进程通信。其中加速驱动组件用于实现对目标软件的启动加速。
启动加速等级确定模块602,用于根据配置信息确定目标软件的启动加速等级。
具体地,可以根据需要划分启动加速等级,从而为不同的软件配置不同的启动加速等级。其中目标软件是指需要进行启动加速的软件。目标软件可以是任意软件,包括:游戏软件、通信软件、工程设计软件、图像处理软件和编程软件等。
在一个实施例中,启动加速等级包括:轻度加速等级、中度加速等级和重度加速等级。在一个实施例中,配置信息包括软件标识和启动加速等级的对应关系,从而可以根据该对应关系查找到目标软件的启动加速等级。在一个实施例中,配置信息包括软件标识和加速窗口标识的对应关系,从而可以根据该对应关系,在目标软件的指定窗口出现时通知获取模块603或者预读模块604。
在一个实施例中,启动加速等级确定模块602用于通过加速驱动组件以根据配置信息确定目标软件的启动加速等级。
获取模块603,用于获取确定的启动加速等级所对应的预读次数和/或单次预读文件数量。
预读是一种加速程序进程启动速度的技术,通过读取目标软件的主要内容以备该软件启动时耗费大量时间来读取本身的数据。将打开目标软件的启动文件并预读打开的启动文件中的数据的过程称为一次预读。预读次数是指相应的目标软件在启动时需要进行打开目标软件的启动文件并预读打开的启动文件中的数据的过程的次数。单次预读文件数量是指相应的目标软件在启动时进行一次打开目标软件的启动文件并预读打开的启动文件中的数据的过程中需要打开和预读的启动文件的数量。
在一个实施例中,获取模块603用于通过加速驱动组件获取确定的启动加速等级所对应的预读次数和/或单次预读文件数量。
预读模块604,用于根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中。
具体地,根据确定的预读次数和/或单次预读文件数量,可以确定一次性还是分几次打开目标软件的启动文件并调用系统预读函数进行预读。若预读次数少,则每次需要打开的启动文件多,会导致大量并发的文件读操作,但启动加速效果明显;若预读次数多,则每次需要打开的启动文件少,并发的文件读操作少,但启动加速效果较弱。启动文件是指目标软件在启动时需要的文件。
预读模块604可用于调用Windows操作系统用于打开文件的系统函数ZwOpenFile来打开启动文件,并调用于创建共享内存区的系统函数ZwCreateSection来创建共享内存区section,并计算所需要预读的启动文件的页块的信息,以实现将需预读的启动文件的初始化。其中页块的信息包括页块大小和文件偏移属性。将需要预读的启动文件初始化后,就可以通过调用系统预读函数MmPrefetchPages来预读打开的启动文件中的数据到内存中。
在一个实施例中,可以根据系统预读函数封装与每个启动加速等级对应的文件预读接口,每个文件预读接口实现根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中的功能。这样仅需要调用确定的启动加速等级所对应的文件预读接口来处理目标软件的启动文件即可。
在一个实施例中,预读模块604用于通过加速驱动组件以根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中。
启动模块605,用于根据预读到内存中的数据启动目标软件。
具体地,预读到内存中的数据可以被快速调用,这里根据预读到内存中的数据启动目标软件,可以实现目标软件的加速启动。
在一个实施例中,确定的启动加速等级为第一启动加速等级;预读模块604还用于打开目标软件的全部启动文件后,从打开的全部启动文件中预读数据到内存中。
具体地,第一启动加速等级对应重度启动加速等级。本实施例中,预读模块604用于一次性初始化目标软件的全部启动文件后,调用一次系统预读函数MmPrefetchPages来预读打开的启动文件中的数据到内存中。第一启动加速等级主要针对一些非常耗时、启动文件很多的目标软件,加速效果明显。
本实施例中,通过一次性打开目标软件的全部启动文件后进行预读,可以最大程度地利用预读的方式来对目标软件进行启动加速。
如图7所示,在一个实施例中,该软件启动装置600还包括:启动进程挂起模块606和启动进程恢复模块607。
启动进程挂起模块606,用于打开目标软件的全部启动文件之前,将目标软件的启动进程挂起。
启动进程恢复模块607,用于在从打开的全部启动文件中预读数据到内存中之后,恢复启动进程。
具体地,考虑到重度启动加速等级虽然可以最大程度地利用预读的方式来对目标软件进行启动加速,但也会瞬间并发非常多的文件读操作,而此时目标软件的启动进程本身也会发起相当多的文件读操作,这时会引起磁盘读偏移来回剧烈震动,导致文件的读效率大幅下降,所以这里需要在第一启动加速等级的情况下将目标软件的启动进程挂起,从而避免目标软件的启动进程与启动加速机制同时发起文件读操作从而影响到目标软件的启动速度,影响启动加速效果。相比之下,其它启动加速等级下启动加速时发起的文件读操作较为缓和,可以不对启动进程进行干预。
在一个实施例中,启动进程恢复模块607可用于根据配置信息确定恢复启动进程的时间点,从而在达到该时间点时恢复启动进程。该时间点可以是自启动进程启动起经过预设时长的时间点,也可以是自启动进程挂起开始经过预设时长的时间点,也可以是指定事件发生时的时间点。
在一个实施例中,启动进程挂起模块606还用于通过注册到操作系统的自定义函数,接收系统回调函数接口在目标软件的启动进程启动时发出的第一通知并等待。
启动进程恢复模块607还用于通过自定义函数向系统回调函数接口反馈第二通知,使操作系统继续运行启动进程。
具体地,为了实现将目标软件的启动进程挂起,利用了操作系统的系统回调函数接口PsSetCreateProcessNotifyRoutine的同步特性,即该系统回调函数接口发出一个消息后接收到对该消息的反馈后才会继续后续的动作。本实施例中,预先将一种自定义函数注册到操作系统,使得该自定义函数可以被系统回调函数接口调用。这样操作系统在启动目标软件的启动进程时,通过系统回调函数接口调用该自定义函数,这样自定义函数会接收到第一通知,自定义函数只需进行空等待就可以实现将启动进程挂起。进一步地,通过自定义函数向系统回调函数接口反馈第二通知,就可以使得操作系统继续运行启动进程,实现恢复启动进程。
在一个实施例中,确定的启动加速等级为第二启动加速等级;预读模块604还用于循环执行打开目标软件的数量为单次预读文件数量的启动文件,并预读每次打开的启动文件中的数据到内存中,直至将目标软件全部启动文件的数据预读到内存中。
第二启动加速等级对应中度启动加速等级,第二启动加速等级是一种可动态配置的启动加速等级,具体配置信息可以包括单次预读文件数量,从而使得第二启动加速等级下的预读次数是可控的。
具体地,预读模块604可用于分多次打开目标软件的启动文件并预读数据,每次预读需要先打开数量为单次预读文件数量的启动文件,然后调用一次系统预读函数MmPrefetchPages来预读这些打开的启动文件,然后再打开另外的数量为单次预读文件数量的启动文件,然后再调用一次系统预读函数MmPrefetchPages来预读这些打开的启动文件,如此反复,直至将目标软件全部启动文件的数据预读到内存中。预读次数与调用系统预读函数的次数是相同的。
在一个实施例中,确定的启动加速等级为第三启动加速等级;预读模块604还用于循环执行打开目标软件的一个启动文件,并预读打开的启动文件中的数据到内存中,直至将目标软件全部启动文件的数据预读到内存中。
具体地,第三启动加速等级对应轻度启动加速等级。本实施例中,一次预读仅打开一个启动文件进行预读,具体预读模块604用于每初始化目标软件的一个启动文件,就调用一次系统预读函数MmPrefetchPages来预读打开的启动文件中的数据到内存中。第三启动加速等级适用于启动时间比较短的目标软件的启动加速。
本实施例中,通过每次打开目标软件的一个启动文件进行预读来对目标软件进行启动加速,可以避免并发大量的文件读操作,而且可以同时对多个目标软件进行启动加速。
在一个实施例中,启动模块605还用于根据预读到内存中的数据和目标软件的启动进程从启动文件中读取到的数据启动目标软件。
具体地,本实施例主要适用于第二启动加速等级和第三启动加速等级的情形,这两种启动加速等级下发起的文件读操作较为缓和,可以在实施启动加速的同时,目标软件的启动进程从目标软件的启动文件中读取数据。进而,启动进程在启动目标软件时,根据启动进程所读取的数据和预读到内存中的数据进行启动。这样可以进一步加快启动速度,减少启动时间。
在一个实施例中,启动加速等级确定模块602还用于根据配置信息确定目标软件的启动阶段划分,并确定各启动阶段的启动加速等级。
预读模块604还用于在各启动阶段,分别采用相应启动阶段的启动加速等级对应的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中。
具体地,目标软件的启动过程可以根据目标软件的特性作不同的划分,比如一种网络游戏软件,启动过程可以划分为登录阶段和进入游戏界面的启动阶段;还比如一种应用软件,启动过程可以划分为注册阶段和进入应用界面的启动阶段,在此不一一列举。配置信息可以包括目标软件的启动阶段划分,比如配置信息可以包括各目标启动阶段的窗口标识,从而在相应的窗口出现时表示进入相应的启动阶段。
本实施例中,将目标软件的启动过程划分为不同的启动阶段,然后在各个启动阶段可以根据情况使用最合适的启动加速等级的启动加速手段,使得目标软件的启动加速更加灵活、高效。
如图8所示,在一个实施例中,该软件启动装置600还包括:启动行为参数统计模块608和记录模块609。
启动行为参数统计模块608,用于统计目标软件的启动行为参数;启动行为参数包括:原始启动时长、启动文件数量、启动文件大小、启动阶段划分以及启动时文件读操作行为属性中的至少一种。
具体地,启动行为参数是指表示目标软件在启动时的特性的参数。其中原始启动时长是指在不采用启动加速手段的前提下,目标软件启动所需要的时间长度。启动文件数量是指目标软件的在启动时需要的启动文件的总数量。启动文件大小包括每个启动文件的大小以及各启动文件的平均大小。启动时文件读操作行为属性包括目标软件在启动时发起的文件读操作数量、文件读操作的时间分布等。
记录模块609,用于根据统计的启动行为参数生成相应的启动加速等级记录到配置文件中。
配置信息获取模块601还用于从配置文件中读取配置信息。
具体地,统计的目标软件的启动行为参数可以反映出目标软件的启动加速需求,从而可以根据统计的启动行为参数生成相应的启动加速等级,并与目标软件的软件标识对应记录到配置文件中。
比如,原始启动时长较长的目标软件可以采用第一启动加速等级,而原始启动时长较短的目标软件则可以采用第二或者第三启动加速等级。启动文件数量多或者启动文件大的目标软件可以采用第一启动加速等级,而启动文件数量少或者启动文件小的目标软件可以采用第二或者第三启动加速等级。根据启动阶段划分可以分启动阶段配置启动加速等级。文件读操作数量较多的目标软件可以采用第一启动加速等级,文件读操作数量较少的目标软件可以采用第二或者第三启动加速等级。
本实施例中,通过统计目标软件的启动行为参数并据以生成相应的启动加速等级记录到配置文件中,可以根据目标软件的启动行为特性灵活配置启动加速策略,使得启动加速更加灵活以及高效。
如图9所示,在一个实施例中,该软件启动装置600还包括:上报模块610,用于在获取到启动目标软件结束的通知后,上报启动加速结果到服务器;启动加速结果包括:启动加速是否成功,是否预读了目标软件的全部启动文件和预读的启动文件数量中的至少一种。
具体地,启动目标软件结束的通知可以是启动目标软件成功的通知或者启动目标软件失败的通知。可以通过通信进程接收加速驱动组件发出的启动目标软件结束的通知。上报启动加速结果到服务器,服务器可以根据上报的启动加速结果做进一步分析和改进,从而可以反馈优选的配置信息。
具体若启动加速失败,则可以更改配置信息中目标软件对应的启动加速等级。若未能预读目标软件的全部启动文件,则可以更改配置信息中目标软件对应的是否挂起进程的配置。若预读的启动文件数量较少,而目标软件对应的启动加速等级为第一启动加速等级,则可以更改配置信息中目标软件对应的第一启动加速等级为第二或者第三启动加速等级。
上述软件启动装置600,事先划分不同的启动加速等级,通过配置信息可以确定目标软件的启动加速等级。根据启动加速等级所对应的预读次数和/或单次预读文件数量,可以确定单次或多次来打开目标软件的启动文件,从而将打开的启动文件中的数据预读到内存中。这样通过预读目标软件的启动文件,可以显著加快目标软件的启动速度,减少启动时间。而且,通过调整各启动加速等级对应的预读次数和/或单次预读文件数量,可以灵活调整打开启动文件的次数,从而可以控制每次预读的文件读操作数量,适用于各种软件不同的启动加速需求,兼容性强。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (21)

  1. 一种软件启动方法,包括:
    获取配置信息;
    根据所述配置信息确定目标软件的启动加速等级;
    获取确定的启动加速等级所对应的预读次数和/或单次预读文件数量;
    根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中;及
    根据预读到内存中的数据启动所述目标软件。
  2. 根据权利要求1所述的方法,其特征在于,所述确定的启动加速等级为第一启动加速等级;所述根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中包括:
    打开所述目标软件的全部启动文件后,从打开的全部启动文件中预读数据到内存中。
  3. 根据权利要求2所述的方法,其特征在于,所述打开所述目标软件的全部启动文件后,从打开的全部启动文件中预读数据到内存中之前,所述方法还包括:
    将所述目标软件的启动进程挂起;
    所述打开所述目标软件的全部启动文件后,从打开的全部启动文件中预读数据到内存中之后,所述方法还包括:
    恢复所述启动进程。
  4. 根据权利要求3所述的方法,其特征在于,所述将所述目标软件的启动进程挂起包括:
    通过注册到操作系统的自定义函数,接收系统回调函数接口在目标软件的启动进程启动时发出的第一通知并等待;
    所述恢复所述启动进程包括:
    通过所述自定义函数向所述系统回调函数接口反馈第二通知,使所述操作系统继续运行所述启动进程。
  5. 根据权利要求1所述的方法,其特征在于,所述确定的启动加速等级为第二启动加速等级;所述根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中包括:
    循环执行打开所述目标软件的数量为单次预读文件数量的启动文件,并预读每次打开的启动文件中的数据到内存中的步骤,直至将所述目标软件全部启动文件的数据预读到内存中。
  6. 根据权利要求1所述的方法,其特征在于,所述确定的启动加速等级为第三启动加速等级;所述根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中包括:
    循环执行打开所述目标软件的一个启动文件,并预读打开的启动文件中的数据到内存中的步骤,直至将所述目标软件全部启动文件的数据预读到内存中。
  7. 根据权利要求5或6所述的方法,其特征在于,还包括:
    通过目标软件的启动进程从目标软件的启动文件中读取数据;
    所述根据预读到内存中的数据启动所述目标软件包括:
    根据所述启动进程读取的数据和预读到内存中的数据启动所述目标软件。
  8. 根据权利要求1所述的方法,其特征在于,所述根据所述配置信息确定目标软件的启动加速等级包括:
    根据所述配置信息确定目标软件的启动阶段划分,并确定各启动阶段的启动加速等级;
    所述根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中包括:
    在各启动阶段,分别采用相应启动阶段的启动加速等级对应的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中。
  9. 根据权利要求1所述的方法,其特征在于,还包括:
    统计目标软件的启动行为参数;所述启动行为参数包括:原始启动时长、启动文件数量、启动文件大小、启动阶段划分以及启动时文件读操作行为属性中的至少一种;及
    根据统计的启动行为参数生成相应的启动加速等级记录到配置文件中;
    所述获取配置信息包括:
    从配置文件中读取配置信息。
  10. 根据权利要求1所述的方法,其特征在于,还包括:
    获取到启动所述目标软件结束的通知后,上报启动加速结果到服务器;所述启动加速结果包括:启动加速是否成功,是否预读了目标软件的全部启动文件和预读的启动文件数量中的至少一种。
  11. 一种用于软件启动的终端,包括内存和处理器,所述内存中储存有指令,其特征在于,所述指令被所述处理器执行时,使得所述处理器执行以下步骤:
    获取配置信息;
    根据所述配置信息确定目标软件的启动加速等级;
    获取确定的启动加速等级所对应的预读次数和/或单次预读文件数量;
    根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中;及
    根据预读到内存中的数据启动所述目标软件。
  12. 根据权利要求11所述的终端,其特征在于,所述确定的启动加速等级为第一启动加速等级;所述根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中包括:
    打开所述目标软件的全部启动文件后,从打开的全部启动文件中预读数据到内存中。
  13. 根据权利要求12所述的终端,其特征在于,所述指令被所述处理器执行时,还使得所述处理器在执行所述打开所述目标软件的全部启动文件后,从打开的全部启动文件中预读数据到内存中的步骤之前执行将所述目标软件的启动进程挂起的步骤;及
    在执行所述打开所述目标软件的全部启动文件后,从打开的全部启动文件中预读数据到内存中的步骤之后执行恢复所述启动进程的步骤。
  14. 根据权利要求13所述的终端,其特征在于,所述将所述目标软件的启动进程挂起包括:
    通过注册到操作系统的自定义函数,接收系统回调函数接口在目标软件的启动进程启动时发出的第一通知并等待;
    所述恢复所述启动进程包括:
    通过所述自定义函数向所述系统回调函数接口反馈第二通知,使所述操作系统继续运行所述启动进程。
  15. 根据权利要求11所述的终端,其特征在于,所述确定的启动加速等级为第二启动加速等级;所述根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中包括:
    循环执行打开所述目标软件的数量为单次预读文件数量的启动文件,并预读每次打开的启动文件中的数据到内存中的步骤,直至将所述目标软件全部启动文件的数据预读到内存中。
  16. 根据权利要求11所述的终端,其特征在于,所述确定的启动加速等级为第三启动加速等级;所述根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中包括:
    循环执行打开所述目标软件的一个启动文件,并预读打开的启动文件中的数据到内存中的步骤,直至将所述目标软件全部启动文件的数据预读到内存中。
  17. 根据权利要求15或16所述的终端,其特征在于,还包括:
    通过目标软件的启动进程从目标软件的启动文件中读取数据;
    所述根据预读到内存中的数据启动所述目标软件包括:
    根据所述启动进程读取的数据和预读到内存中的数据启动所述目标软件。
  18. 根据权利要求11所述的终端,其特征在于,所述根据所述配置信息确定目标软件的启动加速等级包括:
    根据所述配置信息确定目标软件的启动阶段划分,并确定各启动阶段的启动加速等级;
    所述根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中包括:
    在各启动阶段,分别采用相应启动阶段的启动加速等级对应的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中。
  19. 根据权利要求11所述的终端,其特征在于,还包括:
    统计目标软件的启动行为参数;所述启动行为参数包括:原始启动时长、启动文件数量、启动文件大小、启动阶段划分以及启动时文件读操作行为属性中的至少一种;及
    根据统计的启动行为参数生成相应的启动加速等级记录到配置文件中;
    所述获取配置信息包括:
    从配置文件中读取配置信息。
  20. 根据权利要求11所述的终端,其特征在于,还包括:
    获取到启动所述目标软件结束的通知后,上报启动加速结果到服务器;所述启动加速结果包括:启动加速是否成功,是否预读了目标软件的全部启动文件和预读的启动文件数量中的至少一种。
  21. 一个或多个存储有计算机可执行指令的非易失性计算机可读存储介质,所述计算机可执行指令被一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:
    获取配置信息;
    根据所述配置信息确定目标软件的启动加速等级;
    获取确定的启动加速等级所对应的预读次数和/或单次预读文件数量;
    根据确定的预读次数和/或单次预读文件数量,按次打开目标软件的启动文件并预读数据到内存中;及
    根据预读到内存中的数据启动所述目标软件。
PCT/CN2016/080552 2015-06-02 2016-04-28 软件启动方法、终端及存储介质 WO2016192498A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
MYPI2017704027A MY193465A (en) 2015-06-02 2016-04-28 Method, terminal and storage medium for starting software
US15/721,950 US10747550B2 (en) 2015-06-02 2017-10-01 Method, terminal and storage medium for starting software

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510295900.8A CN106293792B (zh) 2015-06-02 2015-06-02 软件启动方法和装置
CN201510295900.8 2015-06-02

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/721,950 Continuation US10747550B2 (en) 2015-06-02 2017-10-01 Method, terminal and storage medium for starting software

Publications (1)

Publication Number Publication Date
WO2016192498A1 true WO2016192498A1 (zh) 2016-12-08

Family

ID=57440171

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/080552 WO2016192498A1 (zh) 2015-06-02 2016-04-28 软件启动方法、终端及存储介质

Country Status (4)

Country Link
US (1) US10747550B2 (zh)
CN (1) CN106293792B (zh)
MY (1) MY193465A (zh)
WO (1) WO2016192498A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108763104A (zh) * 2018-05-23 2018-11-06 北京小米移动软件有限公司 预读取文件页的方法、装置及存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111061516B (zh) * 2018-10-15 2021-09-14 华为技术有限公司 加速应用的冷启动的方法、装置和终端
US20230045617A1 (en) * 2021-08-03 2023-02-09 Samsung Electronics Co., Ltd. Method and electronic device for managing a boost time required for an application launch
CN114461588B (zh) * 2021-08-20 2023-01-24 荣耀终端有限公司 调节预读窗口的方法及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488495A (zh) * 2013-08-13 2014-01-01 广东欧珀移动通信有限公司 一种通过动态调整开机预加载资源加速开机的方法
CN103677900A (zh) * 2013-11-15 2014-03-26 北京奇虎科技有限公司 一种计算机设备系统启动加速的方法和装置
US20150020200A1 (en) * 2009-03-31 2015-01-15 Gregory W. Dalcher System, method, and computer program product for mounting an image of a computer system in a pre-boot environment for validating the computer system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010047473A1 (en) * 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
US8239841B2 (en) * 2008-04-04 2012-08-07 International Business Machines Corporation Prefetching irregular data references for software controlled caches
US8230442B2 (en) * 2008-09-05 2012-07-24 International Business Machines Corporation Executing an accelerator application program in a hybrid computing environment
CN102123318B (zh) * 2010-12-17 2014-04-23 曙光信息产业(北京)有限公司 一种iptv应用的io加速方法
US20130232215A1 (en) * 2012-03-05 2013-09-05 Riverbed Technology, Inc. Virtualized data storage system architecture using prefetching agent
CN102662690B (zh) * 2012-03-14 2014-06-11 腾讯科技(深圳)有限公司 应用程序启动方法和装置
CN102707966B (zh) * 2012-04-12 2014-09-03 腾讯科技(深圳)有限公司 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端
CN103678342B (zh) * 2012-09-07 2018-04-27 腾讯科技(深圳)有限公司 启动项识别方法及装置
CN103608768B (zh) * 2013-04-01 2017-03-01 华为技术有限公司 一种数据预取方法、相关装置及系统
CN103646090A (zh) * 2013-12-16 2014-03-19 百度在线网络技术(北京)有限公司 应用程序推荐方法、程序启动速度的优化方法和装置
KR102262102B1 (ko) * 2014-04-09 2021-06-09 삼성전자 주식회사 애플리케이션 실행 방법 및 장치
CN104133691B (zh) * 2014-05-05 2016-08-31 腾讯科技(深圳)有限公司 加速启动的方法及装置
CN104572205B (zh) * 2015-01-12 2018-02-23 安一恒通(北京)科技有限公司 一种用于软件加速的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150020200A1 (en) * 2009-03-31 2015-01-15 Gregory W. Dalcher System, method, and computer program product for mounting an image of a computer system in a pre-boot environment for validating the computer system
CN103488495A (zh) * 2013-08-13 2014-01-01 广东欧珀移动通信有限公司 一种通过动态调整开机预加载资源加速开机的方法
CN103677900A (zh) * 2013-11-15 2014-03-26 北京奇虎科技有限公司 一种计算机设备系统启动加速的方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108763104A (zh) * 2018-05-23 2018-11-06 北京小米移动软件有限公司 预读取文件页的方法、装置及存储介质
CN108763104B (zh) * 2018-05-23 2022-04-08 北京小米移动软件有限公司 预读取文件页的方法、装置及存储介质

Also Published As

Publication number Publication date
CN106293792B (zh) 2019-12-20
US20180024849A1 (en) 2018-01-25
CN106293792A (zh) 2017-01-04
US10747550B2 (en) 2020-08-18
MY193465A (en) 2022-10-14

Similar Documents

Publication Publication Date Title
WO2016192498A1 (zh) 软件启动方法、终端及存储介质
WO2017124932A1 (zh) 资源分享方法和终端
WO2018076861A1 (zh) 数据传输的控制方法、装置、存储介质、服务器及系统
WO2018233352A1 (zh) 数据传输方法、装置、终端以及计算机可读存储介质
WO2014071755A1 (zh) 实现移动终端应用程序下载的方法及移动终端
WO2018076841A1 (zh) 数据分享方法、装置、存储介质及服务器
WO2019127971A1 (zh) 镜像仓库的镜像同步方法、系统、设备及存储介质
WO2019174090A1 (zh) 截屏文件分享的控制方法、装置、设备和计算机存储介质
WO2018018695A1 (zh) 一种应用冻结管理的方法、装置以及终端
WO2018076889A1 (zh) 数据备份的方法、装置、系统、存储介质及服务器
WO2021118125A1 (ko) 안드로이드 어플리케이션에 의해 실행 가능한 보안 컨테이너 구축 장치, 방법 및 그 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
WO2014169623A1 (zh) 升级信息处理方法和装置、计算机可读存储介质
WO2011105860A2 (en) Method and apparatus for generating minimum boot image
WO2017076039A1 (zh) 一种智能设备多屏幕运行实现方法及其系统
WO2018076863A1 (zh) 数据存储的方法、装置、存储介质、服务器及系统
WO2015018243A1 (zh) 一种基于iOS设备的网页拦截方法和设备
WO2020052247A1 (zh) 网络资源批量加载方法、智能电视、存储介质及装置
WO2018018820A1 (zh) 处理器工作频率和/或工作核数的调整方法、装置和终端
WO2018038483A1 (ko) 전자 장치 및 전자 장치의 동작 제어 방법
WO2019137217A1 (zh) 应用程序中的页面跳转方法、终端及存储介质
WO2018076881A1 (zh) 数据同步方法、装置、存储介质及服务器
WO2018076890A1 (zh) 数据备份的方法、装置、存储介质、服务器及系统
WO2017157125A1 (zh) 在云计算环境中删除云主机的方法、装置、服务器及存储介质
WO2018076879A1 (zh) 数据备份方法、装置、存储介质及终端
WO2018161576A1 (zh) 一种广播的控制方法、装置、存储介质及移动终端

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16802421

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 18.04.2018)

122 Ep: pct application non-entry in european phase

Ref document number: 16802421

Country of ref document: EP

Kind code of ref document: A1