WO2015156615A1 - Procédé et appareil d'exécution d'application - Google Patents
Procédé et appareil d'exécution d'application Download PDFInfo
- Publication number
- WO2015156615A1 WO2015156615A1 PCT/KR2015/003565 KR2015003565W WO2015156615A1 WO 2015156615 A1 WO2015156615 A1 WO 2015156615A1 KR 2015003565 W KR2015003565 W KR 2015003565W WO 2015156615 A1 WO2015156615 A1 WO 2015156615A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- memory
- application
- terminal
- profile data
- requested
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
Definitions
- the present disclosure relates to an application execution method and apparatus of a terminal. More particularly, the present disclosure relates to a technology of improving the operation speed of the application in executing or in the middle of running the application.
- the Central Processing Unit (CPU) of the terminal loads the requested input/output (I/O) data on the main memory device, such as a Random Access Memory (RAM), from an auxiliary memory device, such as Hard Disk Drive (HDD) until the application execution screen is displayed. Since there is no I/O data preloaded at the initial launch of the application, it takes a relatively long time to launch the application. In the case of re-launching the application, it is possible to load the I/O data necessary for launching the application using the I/O lists used in the previous launching process, resulting in a reduction of loading time. Even in this case, however, the total length of the loading time may vary depending on the method of updating the I/O lists that have been loaded in the previous launching process.
- the main memory device such as a Random Access Memory (RAM)
- HDD Hard Disk Drive
- an aspect of the present disclosure is to provide a method and apparatus for improving the running speed of an application on a terminal in the launching stage and post-launching stage.
- an application execution method of a terminal includes detecting a launch of an application, preloading Input/Outputs (I/Os) requested at the launch based on profile data with I/Os requested at a previous launch of the application, and updating the profile data based on at least one of the I/Os requested at current and previous launches of the application.
- I/Os Input/Outputs
- a terminal for executing an application includes a storage unit configured to store profile data including a list of I/Os requested at a previous launch of the application and a control unit configured to detect a launch of an application, preload I/Os requested at the launch based on profile data with I/Os requested at the previous launch of the application, and update the profile data based on at least one of the I/Os requested at current and previous launches of the application.
- an application execution method of a terminal includes detecting a memory return request of a process executed by the application, storing memory mapping information of the process in response to the memory return request, determining whether a total amount of the memory mapping information stored in the memory mapping storage is greater than a predetermined capacity, and releasing, when the total amount of the memory mapping information is greater than the predetermined capacity, a connection between a virtual memory and a physical memory which is associated with at least one memory mapping information in units of page.
- a terminal for executing an application includes a physical memory unit configured to store data, an input unit configured to receive an input to generate a request signal of the application, a virtual memory unit configured to map the data stored in the physical memory unit, a memory mapping storage configured to detect a memory return request of a process executed by the application and stores the memory mapping information of the process in response to the memory return request, and a control unit configured to determine whether a total amount of the memory mapping information stored in the memory mapping storage is greater than a predetermined capacity and release, when the total amount of the memory mapping information is greater than the predetermined capacity, a connection between the virtual memory unit and the physical memory which is associated with at least one memory mapping information in units of page.
- FIG. 1 is a diagram illustrating an application launching mechanism according to an embodiment of the present disclosure
- FIG. 2 is a diagram illustrating a profiling process on a block input/output (I/O) layer according to an embodiment of the present disclosure
- FIG. 3 is a flowchart illustrating an application launching speed enhancement method according to an embodiment of the present disclosure
- FIG. 4 is a diagram illustrating an application launching procedure to which an application launching speed enhancement method is applied according to an embodiment of the present disclosure
- FIG. 5 is a flowchart illustrating a profile data update method according to an embodiment of the present disclosure
- FIG. 7 is a diagram for explaining an I/O merging process of a profile data update method according to an embodiment of the present disclosure
- FIG. 13 is a block diagram illustrating a configuration of an application execution apparatus according to an embodiment of the present disclosure
- FIG. 14 is a diagram for explaining an adaptive loading method according to an embodiment of the present disclosure.
- FIG. 15 is a flowchart illustrating an adaptive loading operation according to an embodiment of the present disclosure.
- the application launching speed enhancement method may include a scheme of discerning the I/O lists regardless of the launch of the application as well as the scheme of data profiling at the VFS layer. In the case that there is an I/O which does not exist in the profile data but is requested in preloading the I/Os, the UE may determine whether to merge the I/Os.
- the scheme of discerning the I/O lists that are not related to the application launch is described with reference to FIGS. 5 to 7.
- the terminal determines whether the requested I/O exists in the previously stored profile list at operation S501. Although the I/O does not exist in the previous profile list, the VFS layer performs profiling to add the I/O to the profile list. Accordingly, the I/Os profiled in the application launching procedure include all requested I/Os including the I/Os of the previous profile data and thus there is a need of criteria for determining whether all of the I/Os are entitled to be stored in the profile list.
- the IPC is a mechanism that allows exchange of messages between applications running on a system and, if IPC occurs between the requested I/Os occurring at the application launch start time (App Launch start), this means that the corresponding I/Os are related to the application lunching. Accordingly, the terminal discerns the I/O related to the application launching depending on whether IPC occurs between the I/Os at operation S502.
- the terminal merges the corresponding I/Os into one to update the final profile data at operation S506.
- Whether the I/Os can be merged may be determined based on the following criteria.
- the I/Os to be merged are associated with the same file and have to be overlapped in length with the offset of the file of the I/Os. It is not necessary for offset required for the merging I/Os to be continuous completely. In the case that the I/Os to be merged are distant, merging may cause performance degradation.
- FIG. 8 is a block diagram illustrating an application launching speed enhancement apparatus according to an embodiment of the present disclosure.
- the application launching speed enhancement apparatus includes a control unit 810 and the storage unit 820.
- Whether the I/O requested at the launch of the application is related to the launch of the application is determined based on whether IPC occurs between the I/O requested at the launch of the application and the I/Os stored in the profile data.
- the control unit 810 may determine the I/Os to be included in the profile data and merge the I/Os that can be merged among the I/Os to be included in the profile data.
- the application may read and/or write a plurality of data and performs operations using the physical and virtual memories.
- FIG. 9 is a diagram illustrating a memory mapping storage unit for managing memory mapping information of an application according to an embodiment of the present disclosure.
- Each process can access the memory to read and write data in the Virtual Memory Access mode in which the data stored in the physical memory are mapped to the virtual memory.
- the process After use of a specific virtual memory, the process returns the virtual memory back to the system (unmap) such that the connection between the virtual memory and the physical memory is released.
- the system has to repeat the same operation (connection between virtual and physical memories) when same process requests for new virtual memory, resulting in reduction of efficiency.
- a terminal may regard the un-mapping request of the application as a memory return request so as not to release the connection between the physical memory and virtual memory of the pre-mapped pages mapped previously but preserve the corresponding information in the reuse pool and provide, when the mapping request reoccurs, the application with the corresponding memory information retrieved from the reuse pool.
- the reuse pool of pre-mapped pages may be interchangeably referred to as memory mapping storage 900.
- FIG. 10 is a flowchart illustrating a memory mapping storage management method according to an embodiment of the present disclosure.
- the terminal stores the memory mapping information of the process corresponding to the memory return request in the memory mapping storage at operation S1002.
- FIG. 11 is a diagram illustrating a memory mapping storage according to an embodiment of the present disclosure.
- the memory mapping storage 1100 may be restricted in size. In the example of FIG. 11, the memory mapping storage 1100 is restricted to 30MB. In this case, a part of the memory mapping information 1105 which exceeds 30MB may be deleted from the memory mapping storage 1100. For the deleted memory mapping information 1105, the connection between the physical and virtual memories may be released.
- FIG. 12 is a diagram for explaining an operation of a memory mapping storage according to an embodiment of the present disclosure.
- VMA Allocation denotes a process of providing, when a remapping request (mmap()) is generated by an application for the mapping information stored in the memory mapping storage, the application with the memory mapping information on the request message as much as the requested size.
- FIG. 13 is a block diagram illustrating a configuration of an application execution apparatus according to an embodiment of the present disclosure.
- the physical memory unit 1304 may be a real memory for storing data but is not limited thereto.
- the input unit 1301 may generate a request signal such as the mapping and un-mapping request in response to an input made to an application.
- the virtual memory unit 1303 may map the data stored in the physical memory unit 1304.
- the application may access the virtual memory unit 1303 to read data from the physical memory unit 1304.
- control unit 1302 may include a memory mapping storage for storing the memory mapping information of the process corresponding to the memory return request input through the input unit 1301.
- the control unit 1302 determines whether the total memory mapping information stored in the memory mapping storage exceeds a predetermined capacity and, if so, deletes at least one memory mapping information by page to release the connection between the virtual and physical memory units.
- the control unit 1302 also may delete at least one memory mapping information from the memory mapping storage and release the connection between the virtual and physical memories in units of page.
- control unit 1302 may send the memory mapping information as much as requested to the application.
- the predetermined capacity may be equal to or less than the size of the physical memory.
- an embodiment of the present disclosure proposes an adaptive loading method that is capable of pre-loading the profile data in adaptation to the current status of the memory. That is, the terminal loads all the profile data when the extra memory is large enough (high free memory) and reduces the data amount to be loaded as the memory headroom level decreases.
- the data to be loaded may be selected by the process generating the data, the related service (process) having large amount of profile data is excluded as the memory headroom decreases, and only the profile data generated by the target application are loaded at a low memory level (low free memory).
- the memory level is determined by threshold values which may vary depending on the system memory size.
- FIG. 14 is a diagram for explaining an adaptive loading method according to an embodiment of the present disclosure.
- reference number 1400 denotes a list of the requested I/Os contained in the profile data.
- a plurality of processes may generate the I/Os for the target application.
- the Process Identification is a value that changes whenever the profile data are generated or the terminal reboots and thus it is difficult to know the process generating the corresponding I/O process only based on the PID value.
- Reference number 1401 denotes a table of PIDs mapped to the names of the processes generating the I/Os. By referencing the table, it is possible to know the name of process which has generated the I/O using the PID.
- reference number 1402 denotes a table mapping the system memory levels and operation modes of the adaptive loading method according to an embodiment of the present disclosure.
- FIG. 14 is directed to the case where the memory level is determined depending on the amount of the free memory, the memory level may be determined based on the memory amount in use.
- the threshold values may change depending on the system memory size.
- threshold values There are two threshold values, i.e. low threshold value and high threshold value, in the table 1402.
- the terminal may preload only the I/Os generated by target application selectively (Target App Only Mode.
- the terminal may operate in the full-loading mode in which all of the I/Os contained in the profile data can be preloaded.
- the description is directed to the case where the three memory levels are defined with two threshold values for the different pre-loading modes, it is also possible to preload only the I/Os corresponding to the profile data as much as the ratio of the free memory amount to the entire profile data according to the free memory amount without threshold values.
- the terminal checks the free memory size at operation 1500. Although not shown in the drawing, the terminal determines the memory level to acquire the free memory size whenever the application is launched.
- the terminal determines whether the free memory size is greater than the low threshold at operation 1501. If the free memory size is equal to or less than the low threshold value, the terminal determines that the memory state is low free memory level and preloads only the I/Os generated by the target application at operation 1502.
- the terminal determines whether the free memory size is greater than the high threshold value at operation 1503. If the free memory size is greater than the high threshold value, this means that the free memory is large enough and thus the terminal determines that the memory state is high free memory level so as to preload all of the I/Os included in the profile data at operation 1504.
- the terminal determines that the memory state is the normal state level and calculates the radio of the free memory to the entire memory at operation 1505.
- the terminal preloads the I/Os included in the profile data according to the ratio calculated at operation 1505.
- the application execution method and apparatus of the present disclosure is advantageous in terms of improving the launching speed in the case of re-launching the application by updating all I/O data requested at the application launching stage of the terminal to profile data.
- the application execution method and apparatus of the present disclosure is advantageous in terms of reducing the I/O pre-loading time on the profile data by merging the I/O, if possible, in updating the profile data.
- the application execution method and apparatus of the present disclosure is advantageous in terms of mitigating memory performance degradation by determining whether to pre-load the I/O depending on the virtual memory status and the number of I/Os to be loaded.
- the application execution method and apparatus of the present disclosure is advantageous in terms of securing enough free memory space by using a predetermined capacity of reuse storage when a memory return request occurs while the application is running.
- Any such software may be stored in a non-transitory computer readable storage medium.
- the non-transitory computer readable storage medium stores one or more programs (software modules), the one or more programs comprising instructions, which when executed by one or more processors in an electronic device, cause the electronic device to perform a method of the present disclosure.
- Any such software may be stored in the form of volatile or non-volatile storage such as, for example, a storage device like a Read Only Memory (ROM), whether erasable or rewritable or not, or in the form of memory such as, for example, Random Access Memory (RAM), memory chips, device or integrated circuits or on an optically or magnetically readable medium such as, for example, a Compact Disk (CD), Digital Versatile Disc (DVD), magnetic disk or magnetic tape or the like.
- ROM Read Only Memory
- RAM Random Access Memory
- CD Compact Disk
- DVD Digital Versatile Disc
- the storage devices and storage media are various embodiments of non-transitory machine-readable storage that are suitable for storing a program or programs comprising instructions that, when executed, implement various embodiments of the present disclosure. Accordingly, various embodiments provide a program comprising code for implementing apparatus or a method as claimed in any one of the claims of this specification and a non-transitory machine-readable storage storing such a program.
Abstract
L'invention concerne un procédé d'exécution d'application pour améliorer la vitesse de fonctionnement de l'application lors de l'exécution ou au milieu de l'exécution de l'application. Le procédé d'exécution d'application consiste à détecter un lancement d'une application, à précharger des entrées/sorties (E/S) demandées au lancement sur la base de données de profil avec des E/S demandées à un lancement précédent de l'application, et à mettre à jour les données de profil sur la base d'au moins l'une des E/S demandées à des lancements courants et précédents de l'application.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP15776620.5A EP3129872A4 (fr) | 2014-04-09 | 2015-04-09 | Procédé et appareil d'exécution d'application |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2014-0042567 | 2014-04-09 | ||
KR20140042567 | 2014-04-09 | ||
KR1020140103866A KR102262102B1 (ko) | 2014-04-09 | 2014-08-11 | 애플리케이션 실행 방법 및 장치 |
KR10-2014-0103866 | 2014-08-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015156615A1 true WO2015156615A1 (fr) | 2015-10-15 |
Family
ID=54288117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2015/003565 WO2015156615A1 (fr) | 2014-04-09 | 2015-04-09 | Procédé et appareil d'exécution d'application |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2015156615A1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112817648A (zh) * | 2019-10-31 | 2021-05-18 | 深圳市万普拉斯科技有限公司 | 应用程序文件预加载方法、装置和移动终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6003115A (en) | 1997-07-29 | 1999-12-14 | Quarterdeck Corporation | Method and apparatus for predictive loading of a cache |
US20050108496A1 (en) * | 2003-11-13 | 2005-05-19 | International Business Machines Corporation | Hardware support for superpage coalescing |
US20070043939A1 (en) | 2000-02-03 | 2007-02-22 | Realtime Data Llc | Systems and methods for accelerated loading of operating systems and application programs |
US20130332811A1 (en) * | 2012-06-07 | 2013-12-12 | Microsoft Corporation | Progressive loading for web-based spreadsheet applications |
US20140040563A1 (en) * | 2012-01-03 | 2014-02-06 | Seoul National University R&Db Foundation | Shared virtual memory management apparatus for providing cache-coherence |
-
2015
- 2015-04-09 WO PCT/KR2015/003565 patent/WO2015156615A1/fr active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6003115A (en) | 1997-07-29 | 1999-12-14 | Quarterdeck Corporation | Method and apparatus for predictive loading of a cache |
US20070043939A1 (en) | 2000-02-03 | 2007-02-22 | Realtime Data Llc | Systems and methods for accelerated loading of operating systems and application programs |
US20050108496A1 (en) * | 2003-11-13 | 2005-05-19 | International Business Machines Corporation | Hardware support for superpage coalescing |
US20140040563A1 (en) * | 2012-01-03 | 2014-02-06 | Seoul National University R&Db Foundation | Shared virtual memory management apparatus for providing cache-coherence |
US20130332811A1 (en) * | 2012-06-07 | 2013-12-12 | Microsoft Corporation | Progressive loading for web-based spreadsheet applications |
Non-Patent Citations (3)
Title |
---|
KAZUKI OHTA, OPTIMIZATION TECHNIQUES AT THE I/O FORWARDING LAYER |
See also references of EP3129872A4 * |
YONGSOO JOO, IMPROVING APPLICATION LAUNCH PERFORMANCE ON SOLID STATE DRIVES |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112817648A (zh) * | 2019-10-31 | 2021-05-18 | 深圳市万普拉斯科技有限公司 | 应用程序文件预加载方法、装置和移动终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3129872A1 (fr) | Procédé et appareil d'exécution d'application | |
WO2011105860A2 (fr) | Procédé et appareil permettant de générer une image de démarrage minimale | |
WO2017135586A1 (fr) | Procédé de gestion de mémoire et dispositif électronique associé | |
WO2014107006A1 (fr) | Appareil d'affichage et son procédé de commande | |
WO2016204529A1 (fr) | Dispositif et procédé de stockage en mémoire destinés à la prévention de perte de données après une perte d'alimentation électrique | |
WO2017209508A1 (fr) | Dispositif électronique et procédé de journalisation de données de fichier de dispositif électronique | |
WO2018021862A1 (fr) | Procédé d'affichage de contenu et dispositif électronique adapté à ce dernier | |
WO2016195422A1 (fr) | Procédé et appareil pour gérer une mémoire | |
WO2018139752A1 (fr) | Procédé et dispositif électronique pour commander une pluralité de caméras | |
US10606666B2 (en) | High performance locks | |
WO2020171427A1 (fr) | Dispositif électronique à préchargement d'application et procédé associé | |
WO2015060690A1 (fr) | Procédé et appareil de mise à niveau de système d'exploitation de dispositif électronique | |
WO2015063845A1 (fr) | Dispositif de mémoire de données, procédé de mémoire de données et programme de mémoire de données | |
WO2018117589A1 (fr) | Dispositif électronique et procédé d'affichage de page web au moyen dudit dispositif | |
EP3224698A1 (fr) | Dispositif électronique permettant d'exécuter une pluralité d'applications et procédé de commande du dispositif électronique | |
EP3234746A1 (fr) | Dispositif électronique et procédé de commande d'affichage | |
WO2019194394A1 (fr) | Dispositif électronique et procédé de commande associé | |
WO2018124331A1 (fr) | Système de traitement graphique et procédé de fonctionnement d'un système de traitement graphique | |
WO2015156615A1 (fr) | Procédé et appareil d'exécution d'application | |
WO2015152648A1 (fr) | Appareil et procédé de gestion de fichiers en utilisant une mémoire tampon dans un espace de stockage d'un enregistreur d'événements vidéo | |
US9223806B2 (en) | Restarting a batch process from an execution point | |
US20120017030A1 (en) | Optimizing a file system interface in a virtualized computing environment | |
WO2017026740A1 (fr) | Dispositif electronique et procédé de compression de données s'y rapportant | |
WO2020197071A1 (fr) | Dispositif électronique et son procédé de commande | |
WO2016182255A1 (fr) | Dispositif électronique et procédé de fusion de pages associé |
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: 15776620 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
REEP | Request for entry into the european phase |
Ref document number: 2015776620 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2015776620 Country of ref document: EP |