CN113391882A - Virtual machine memory management method and device, storage medium and electronic equipment - Google Patents

Virtual machine memory management method and device, storage medium and electronic equipment Download PDF

Info

Publication number
CN113391882A
CN113391882A CN202110721733.4A CN202110721733A CN113391882A CN 113391882 A CN113391882 A CN 113391882A CN 202110721733 A CN202110721733 A CN 202110721733A CN 113391882 A CN113391882 A CN 113391882A
Authority
CN
China
Prior art keywords
memory
module
amount
current
virtual machine
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.)
Granted
Application number
CN202110721733.4A
Other languages
Chinese (zh)
Other versions
CN113391882B (en
Inventor
徐磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202110721733.4A priority Critical patent/CN113391882B/en
Publication of CN113391882A publication Critical patent/CN113391882A/en
Priority to PCT/CN2022/089013 priority patent/WO2023273564A1/en
Application granted granted Critical
Publication of CN113391882B publication Critical patent/CN113391882B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Abstract

The disclosure relates to a virtual machine memory management method, a virtual machine memory management device, a storage medium and an electronic device, wherein the method comprises the following steps: acquiring the current memory occupancy of a preset module in the virtual machine, wherein the preset module is a module for storing an object which is not required to be included in the memory statistics of a memory statistics module of the virtual machine; determining the memory to-be-hidden amount according to the current memory occupation amount of the preset module; according to the memory to-be-hidden amount, the current memory occupation total amount counted by the memory counting module is updated, the current memory occupation total amount counted by the memory counting module does not include the memory to-be-hidden amount, memories not counted by the memory counting module can be used for distribution, and the memory counting module of the virtual machine cannot count the memory use condition in the preset module, so that the memories which can be used for distribution in the virtual machine stack area are indirectly improved, the Java OOM abnormity caused by the fact that the memories cannot be distributed to the objects due to insufficient space where the memories can be distributed is avoided, and the reliability of the equipment is further improved.

Description

Virtual machine memory management method and device, storage medium and electronic equipment
Technical Field
The present disclosure relates to the field of virtual machine technologies, and in particular, to a method and an apparatus for managing a memory of a virtual machine, a storage medium, and an electronic device.
Background
At present, internet applications still need to be compatible with low-version electronic devices, and with the increasingly frequent version iterations and product operation requirements Of various applications, various picture or animation resources can be used in large quantities on line every time a major activity or a holiday comes, and because more objects need to be allocated to pictures and the like, the use space Of a virtual machine heap Memory may be insufficient, which easily causes an Out Of Memory (Out Of Memory) abnormality Of the electronic devices, causes application backslash, and affects the use Of the electronic devices by users.
Disclosure of Invention
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
In a first aspect, the present disclosure provides a method for managing a memory of a virtual machine, including:
acquiring the current memory occupancy of a preset module in a virtual machine, wherein the preset module is a module for storing an object which does not need to be included in the memory statistics of a memory statistics module of the virtual machine;
determining the amount of memory to be hidden according to the current memory occupation amount of the preset module;
and updating the total amount of the current memory occupation counted by the memory counting module according to the amount of the memory to be hidden, wherein the total amount of the current memory occupation counted by the memory counting module does not include the amount of the memory to be hidden.
In a second aspect, the present disclosure provides a virtual machine memory management apparatus, including:
the system comprises an acquisition module, a storage module and a processing module, wherein the acquisition module is used for acquiring the current memory occupancy of a preset module in the virtual machine, and the preset module is a module used for storing objects which do not need to be included in the memory statistics of a memory statistics module of the virtual machine;
the determining module is used for determining the memory to-be-hidden amount according to the current memory occupied amount of the preset module;
and the updating module is used for updating the total current memory occupation amount counted by the memory counting module according to the memory to-be-hidden amount, wherein the total current memory occupation amount counted by the memory counting module does not include the memory to-be-hidden amount.
In a third aspect, the present disclosure provides a computer-readable medium, on which a computer program is stored, where the computer program, when executed by a processing device, implements the steps of the virtual machine memory management method in the first aspect.
In a fourth aspect, the present disclosure provides an electronic device comprising:
a storage device having a computer program stored thereon;
a processing device, configured to execute the computer program in the storage device to implement the steps of the virtual machine memory management method in the first aspect.
According to the technical scheme, the memory counting module is used for counting used memories in the heap area of the virtual machine, and the memory counting module counts the memories which are not counted and can be used for distribution, so that the memory occupancy in the preset module is separated from the statistics of the memory counting module of the virtual machine, the memory counting module of the virtual machine cannot count the memory use condition in the preset module, the memories which can be used for distribution in the heap area of the virtual machine are indirectly improved, the phenomenon that Java OOM (on-demand memory) abnormity is caused by the fact that the memories cannot be distributed to objects due to insufficient space where the memories can be distributed is avoided, and the reliability of equipment is further improved.
Additional features and advantages of the disclosure will be set forth in the detailed description which follows.
Drawings
The above and other features, advantages and aspects of various embodiments of the present disclosure will become more apparent by referring to the following detailed description when taken in conjunction with the accompanying drawings. Throughout the drawings, the same or similar reference numbers refer to the same or similar elements. It should be understood that the drawings are schematic and that elements and features are not necessarily drawn to scale. In the drawings:
fig. 1 is a flowchart illustrating a method for virtual machine memory management according to an exemplary embodiment of the present disclosure.
FIG. 2 is a schematic diagram illustrating a comparison of virtual machine memory management partitions according to an example embodiment of the present disclosure.
Fig. 3 is another flowchart illustrating a method for virtual machine memory management according to an exemplary embodiment of the present disclosure.
Fig. 4 is a block diagram illustrating a virtual machine memory management device according to an exemplary embodiment of the present disclosure.
Fig. 5 is a schematic structural diagram of an electronic device according to an exemplary embodiment of the present general application.
Detailed Description
Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While certain embodiments of the present disclosure are shown in the drawings, it is to be understood that the present disclosure may be embodied in various forms and should not be construed as limited to the embodiments set forth herein, but rather are provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the disclosure are for illustration purposes only and are not intended to limit the scope of the disclosure.
It should be understood that the various steps recited in the method embodiments of the present disclosure may be performed in a different order, and/or performed in parallel. Moreover, method embodiments may include additional steps and/or omit performing the illustrated steps. The scope of the present disclosure is not limited in this respect.
The term "include" and variations thereof as used herein are open-ended, i.e., "including but not limited to". The term "based on" is "based, at least in part, on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Relevant definitions for other terms will be given in the following description.
It should be noted that the terms "first", "second", and the like in the present disclosure are only used for distinguishing different devices, modules or units, and are not used for limiting the order or interdependence relationship of the functions performed by the devices, modules or units.
It is noted that references to "a", "an", and "the" modifications in this disclosure are intended to be illustrative rather than limiting, and that those skilled in the art will recognize that "one or more" may be used unless the context clearly dictates otherwise.
The names of messages or information exchanged between devices in the embodiments of the present disclosure are for illustrative purposes only, and are not intended to limit the scope of the messages or information.
As background art shows, electronic devices are continuously enriching various functions and improving performance, mobile internet is also rapidly developing, various internet applications in the market have become comprehensive flagship-level applications at first, application installation packages are large, and the occupied disk memory is up to 1G after the application installation packages are used for a period of time. More sophisticated applications, while having a higher visual experience, also have higher demands on the system. As mentioned in the background, internet applications still need to be compatible with low-version electronic devices, and when picture or animation resources are used on the line in large quantities, the number of objects to be allocated may be large, which may result in insufficient space for use of the virtual machine memory, and further cause a Java OOM exception, and the OOM exception will return a NULL object, which will cause the application to flash back. Therefore, how to avoid Java OOM exception of the electronic device in the scene of online heavy use of, for example, picture or animation resources is crucial.
In view of this, the embodiments of the present disclosure provide a method for managing a virtual machine memory, so as to avoid Java OOM exception caused by that a memory cannot be allocated to an object due to insufficient space of an allocable memory in a heap region of a virtual machine, thereby improving reliability of a device.
Fig. 1 is a flowchart illustrating a method for virtual machine memory management according to an exemplary embodiment of the present disclosure. The virtual machine memory management method is applied to electronic equipment, and referring to fig. 1, the virtual machine memory management method includes:
step 101, obtaining a current memory occupancy amount of a preset module in a virtual machine, wherein the preset module is a module for storing an object which does not need to be included in a memory statistic module of the virtual machine and is counted by a memory.
It should be noted that the memory occupied by the preset module represented by the current memory occupied amount is already occupied.
Illustratively, the virtual machine may be an android virtual machine. The preset module may be a module for storing JAVA large objects. Among them, JAVA large object is an object of large data, such as pictures, videos, music, and the like.
It should be noted that, the objects managed by the module for storing the large object are discrete and do not support the copy compression capability of the continuous memory space, so even if the memory occupancy of the module is too much, which causes the heap memory usage of the virtual machine to exceed the upper limit, the memory thresholds of other continuous memory spaces still keep the normal range, which does not affect the copy compression capability during memory recovery, and therefore, the memory occupancy of the module for storing the large object is selected to be separated from the virtual machine statistics module, which does not destroy the memory management of the virtual machine.
And 102, determining the memory to-be-hidden amount according to the current memory occupied amount of the preset module.
It should be noted that the memory to be hidden is the amount of memory that needs to be removed from the memory statistics module of the virtual machine.
Step 103, updating the total amount of the current memory occupation counted by the memory counting module according to the amount of the memory to be hidden, wherein the total amount of the current memory occupation counted by the memory counting module does not include the amount of the memory to be hidden.
It should be noted that the memory statistics module counts the used memory in the JAVA heap area.
Fig. 2 is a schematic diagram illustrating a comparison of virtual machine memory management partitions according to an exemplary embodiment of the present disclosure, and referring to fig. 2, a1 in fig. 2 represents an exemplary diagram of a virtual machine memory management partition in the related art, and a2 represents an exemplary diagram of a virtual machine memory management partition in the present disclosure. First, it should be noted that there is a difference in memory management between the related art and the object of the LargeObjectSpace module in the present disclosure, specifically, in the memory management division of a1, the total memory usage amount (i.e., heap memory) counted by the memory counting module includes two modules, i.e., another space module and the LargeObjectSpace module (i.e., preset module in the present disclosure), and does not include the Native Mem module (here, memory extension) in the virtual machine in the portion 0-2G in fig. 2. In the memory management partition of a2, the total memory usage counted by the memory counting module only includes 1 module, that is, the Other space module, and does not include the memory usage corresponding to the Other Object stored in the LargeObjectSpace (that is, the preset module in the present disclosure), as can be seen from fig. 2, in the memory structure of a1, since the memory usage of the memory counting module of the virtual machine needs to be limited below a certain memory (for example, 512M in fig. 2), the memory usage of the LargeObjectSpace module is virtually limited. In the memory management division of a2, the memory management module of the virtual machine does not count the memory usage of the LargeObjectSpace module, so that the usage ranges of the memory spaces of the LargeObjectSpace module and the other space module are indirectly increased, and the optimization of the memory usage space range is realized from the optimization of the memory management structure.
For example, a process of updating the applied memory by the memory statistics module of the virtual machine may be intercepted, in which a portion of the amount to be hidden of the memory is subtracted from the total amount of the current memory occupied by the memory statistics module of the virtual machine, and then the parameter of the total amount of the current memory occupied by the memory statistics module is updated. And updating the total current memory occupation amount counted by the memory counting module of the virtual machine in the process of updating the applied memory by the memory counting module so as to ensure the timeliness and accuracy of updating.
Illustratively, the Heap memory statistics update interface can be used to intercept the update process of num _ bytes _ allocated _ which is the total amount of the current memory occupied counted by the memory statistics module.
Through the mode, the memory counting module is used for counting used memories in the heap area of the virtual machine, and the memories which are not counted in the counting process of the memory counting module can be used for distribution, so that the memory occupancy in the preset module is separated from the counting of the memory counting module of the virtual machine, the memory counting module of the virtual machine cannot count the memory use condition in the preset module, the memories which can be used for distribution in the heap area of the virtual machine are indirectly improved, the phenomenon that Java OOM abnormity is caused because the space of the distributable memories is insufficient and the memories cannot be distributed to the objects is avoided, and further the reliability of the equipment is improved.
In order to make those skilled in the art understand the virtual machine memory management method provided by the present disclosure, the above steps of the present disclosure are further explained below with reference to fig. 3.
In a possible manner, the step of acquiring the current memory occupancy amount of the preset module in the virtual machine shown in fig. 1 may include: determining that memory allocation for the object is successful; acquiring a first current memory occupation amount of a preset module after the memory is successfully allocated to the object; in this case, the step of determining the memory pending hiding amount according to the current memory occupancy amount of the preset module shown in fig. 1 may include: and determining the memory to-be-hidden amount according to the first current memory occupation amount and the memory occupation amount of a preset module before the memory is allocated for the object.
It should be understood that before and after the memory application of the object is successful, the memory to be hidden amount is the memory occupation size corresponding to the object.
It should be noted that, in multiple times of memory hiding, the current memory occupancy of the preset module may also include the memory allocated by the object applied before the object applies for the memory, and since the memory allocated by the object applied before is already "hidden", in order to avoid that data synchronization is affected by repeated hiding, the difference between the memory occupancy of the preset module before and after the memory allocation for the object is successful is used as the memory occupancy.
For example, before the memory is successfully allocated to the object, the first current memory occupancy of the preset module is 100M, and after the memory is successfully allocated to the object, the current memory occupancy of the preset module is 120M, and the memory to be hidden may be a difference between the current memory occupancy and the first current memory occupancy, that is, 20M.
In a possible manner, the step of acquiring the current memory occupancy amount of the preset module in the virtual machine shown in fig. 1 may include: determining that memory allocation for the object fails; acquiring a second current memory occupation amount of a preset module in the virtual machine; executing memory recovery; acquiring a third current memory occupation amount of a preset module after the memory recovery is executed and the object is successfully distributed to the memory; in this case, the step of determining the memory pending hiding amount according to the current memory occupancy amount of the preset module shown in fig. 1 may include: and under the condition that the second current memory occupation amount is smaller than the third current memory occupation amount, determining the memory to-be-hidden amount according to the second current memory occupation amount and the third current memory occupation amount.
It should be noted that, in the art, memory reclamation is performed after a failure of allocating memory to an object, so as to increase the available memory.
It should be noted that the second current memory footprint characterizes an actual memory footprint of the default module prior to allocation to the object.
For example, the memory pending hiding amount may be a difference between the second current memory footprint and the third current memory footprint.
Illustratively, after failing to allocate the memory to the object, the second current memory occupancy of the preset module is 100M, the memory recovers 40M, and after successfully allocating the memory 40M to the object, the third current memory occupancy of the preset module is 120M, which represents that the object in the 20M preset module is recovered in the recovery process, and the preset module 20M memory is still occupied more after successful allocation than before memory recovery, that is, in the process, a part of memory occupancy of the preset module in the memory statistics module in the virtual machine needs to be hidden, and the memory to-be-hidden amount is a difference between the third current memory occupancy and the second current memory occupancy, that is, 20M.
In a possible manner, the method further comprises: under the condition that the second current memory occupation amount is larger than the third current memory occupation amount, determining a memory compensation amount according to the second current memory occupation amount and the third current memory occupation amount; and updating the total current memory occupation amount counted by the memory counting module according to the memory compensation amount, wherein the total current memory occupation amount counted by the memory counting module comprises the memory compensation amount.
It should be noted that, in the memory recycling process, the memory counting module updates the total memory usage amount counted by the memory counting module according to the recycled memory, and because the memory counting module still manages the memory usage in the preset module, it is considered that part of objects in the preset module may be recycled in the memory recycling process, and the memory usage in the preset module recycled in the memory recycling process is managed by the memory counting module, but the total memory usage amount counted by the memory counting module before does not include the memory usage part in the preset module, therefore, if no corresponding processing is performed, the memory usage in the other space module counted by the memory counting module is released, which results in serious influence on data synchronization.
It should be understood that, in the case that the second current memory occupation amount is greater than the third current memory occupation amount, the memory in the preset module, which is recovered in the memory recovery process, is greater than the memory allocated to the object this time.
Illustratively, after failing to allocate the memory to the object, the second current memory occupancy of the preset module is 100M, the memory is recycled by 60M, and after successfully allocating the memory to the object by 30M, the third current memory occupancy of the preset module is 90M, which represents that the object in the 40M preset module is recycled in the recycling process, and the preset module 10M memory is less occupied after successful allocation than before memory recycling, that is, in the process, the total current memory occupancy counted by the memory counting module needs to be compensated, and the compensation part is equal to the difference value between the second current memory occupancy and the third current memory occupancy, that is, 10M.
By the method, when the memory in the recovered preset module is smaller than the memory allocated for the object, the redundant part is continuously hidden so as to facilitate the part of the memory to be separated from the statistics of the memory statistics module by utilizing the relationship between the memory occupation amount of the preset module before recovery and the memory occupation amount of the preset module after the memory is recovered and successfully allocated to the memory for the object; when the memory in the recovered preset module is larger than the memory allocated to the object, the total amount occupied by the current memory counted by the memory counting module is compensated, so that the condition of releasing the memory in the other space module is avoided, and the data synchronization is ensured.
In a possible manner, the step of updating the total amount of the current memory occupied by the memory statistics module of the virtual machine according to the amount to be hidden of the memory may include: the method comprises the steps of firstly determining that the sum of the actual memory amount which is not counted by a preset module and the to-be-hidden amount of the memory by a memory counting module is smaller than a preset threshold, and then updating the total current memory occupied amount counted by the memory counting module of the virtual machine according to the to-be-hidden amount of the memory.
It should be noted that the actual memory amount represents the memory amount that is not counted by the current memory counting module for the preset module.
It should be noted that the preset module actually occupies the memory space in the Native Merm module.
Through the mode, under the condition that the sum of the actual memory amount and the memory to-be-hidden amount does not exceed the preset threshold value, the total current memory occupation amount counted by the memory counting module of the virtual machine is updated according to the memory to-be-hidden amount, the memory occupation hidden by the virtual machine preset module is dynamically controlled, the memory use and customization requirements of different product forms are met, the memory occupation on the Native Merm module side of the virtual machine is guaranteed to be maintained in a reasonable range, and the situation that the preset module occupies the memory of the Native Merm module without limitation is avoided.
In a possible manner, the current memory occupancy of the preset module can be obtained by the following manner: acquiring a current memory occupation amount object of a preset module; performing decompiling on the current memory occupation amount object to obtain the relative memory address offset of the current memory occupation amount object; and acquiring the current memory occupation amount of the preset module according to the relative memory address offset of the current memory occupation amount object.
It should be noted that the current memory footprint object may be denoted by "num _ bytes _ allocated _".
For example, the current memory occupancy object of the preset module may be obtained through the proxy interface.
Illustratively, a high-level language source program is compiled into an executable file, and decompilation is the inverse process, i.e., the process of converting machine code (assembly language) into a high-level programming language. The related art can be referred to for the implementation method of decompilation, and this embodiment is not described herein again.
It should be noted that the relative memory address offset represents a physical address offset of the current memory occupancy object relative to the starting physical address of the disk where the current memory occupancy object is located, and according to the relative memory address offset, the current memory occupancy object can be directly located at the position to further acquire data of the current memory occupancy object, and it can be understood that the data includes the current memory occupancy of the preset module. It should be noted that the first current memory occupancy amount, the second current memory occupancy amount, and the third current memory occupancy amount may be obtained by obtaining the current memory occupancy amount of the preset module.
Because the virtual machine does not directly expose an interface for acquiring the memory occupation of the preset module to the outside, the relative memory address offset of the current memory occupation object can be determined by the method, and then the reading of the current memory occupation of the preset module is realized according to the relative memory address offset, so that the problem that the memory occupation of the preset module cannot be directly acquired in the related technology is solved.
In a possible manner, the method further comprises: respectively acquiring the object quantity objects of a preset module before and after the memory is allocated to the objects for the first time; before the current memory occupation amount of the preset module in the virtual machine shown in fig. 1 is obtained, determining that a difference value of the two obtained object quantity objects is a preset difference value, where the preset difference value is used to check whether the relative memory address offset of the current memory occupation amount object is accurate.
It should be noted that the number-of-objects object may be represented by "num _ objects _ allocated _".
The acquisition of the object quantity object can refer to the acquisition mode of the current memory occupation quantity object. Specifically, the object number object is decompiled to obtain a relative memory address offset of the object number object, and then data corresponding to the object number object is obtained according to the relative memory address offset, which can be understood that the data includes the number of the objects.
Illustratively, the preset difference is 1.
Specifically, it is required to respectively obtain the object number objects before and after allocating the memory for the object for the first time, determine whether to execute the step of obtaining the current memory occupancy amount of the preset module in the virtual machine shown in fig. 1 according to whether the difference value between the two obtained object number objects is a preset difference value, and execute the step of obtaining the current memory occupancy amount of the preset module in the virtual machine again when it is determined that the difference value between the two obtained example number objects is the preset difference value.
By the method, the difference value of the object quantity objects is checked, if the difference value is equal to 1, the calculation of the relative memory address offset is normal, otherwise, the calculation of the relative memory address offset is wrong, and therefore the accuracy and the reliability of obtaining the memory occupation of the preset module are guaranteed.
In a possible mode, an interface associated with the correlation step can be proxied through Inlinehook (monitoring any function), and the correlation parameters can be changed in the execution process, so that different android system versions can be compatible.
In this embodiment, the implementation process of InlineHook may refer to related technologies, and this embodiment is not limited herein.
Based on the same inventive concept, an embodiment of the present disclosure provides a virtual machine memory management device, and fig. 4 is a block diagram of a virtual machine memory management device according to an exemplary embodiment of the present disclosure, and with reference to fig. 4, the virtual machine memory management device includes:
an obtaining module 401, configured to obtain a current memory occupancy amount of a preset module in a virtual machine, where the preset module is a module configured to store an object that does not need to be included in a memory statistics module of the virtual machine and is subjected to memory statistics;
a determining module 402, configured to determine a memory occupancy amount according to the current memory occupancy amount of the preset module;
an updating module 403, configured to update the total amount of the current memory usage counted by the memory counting module according to the amount of the memory to be hidden, where the total amount of the current memory usage counted by the memory counting module does not include the amount of the memory to be hidden.
Optionally, the obtaining module 401 includes:
the first memory determining submodule is used for determining that memory allocation for the object is successful;
the first obtaining submodule is used for obtaining a first current memory occupation amount of the preset module after the memory is successfully allocated to the object;
the determining module 402 comprises:
and the first determining submodule is used for determining the memory to-be-hidden amount according to the first current memory occupation amount and the memory occupation amount of the preset module before the memory is allocated for the object.
Optionally, the obtaining module 401 includes:
the second memory determination submodule determines that memory allocation for the object fails;
the second obtaining submodule is used for obtaining a second current memory occupation amount of a preset module in the virtual machine;
the memory recovery submodule is used for executing memory recovery;
the third obtaining submodule is used for obtaining a third current memory occupation amount of the preset module after the memory recovery is executed and the object is successfully distributed to the memory;
the determining module 402 comprises:
and the second determining submodule is used for determining the memory to-be-hidden amount according to the second current memory occupation amount and the third current memory occupation amount under the condition that the second current memory occupation amount is smaller than the third current memory occupation amount.
Optionally, the apparatus 400 further comprises:
the memory compensation amount determining module is used for determining the memory compensation amount according to the second current memory occupation amount and the third current memory occupation amount under the condition that the second current memory occupation amount is larger than the third current memory occupation amount;
and the compensation module is used for updating the total current memory occupation amount counted by the memory counting module according to the memory compensation amount, wherein the total current memory occupation amount counted by the memory counting module comprises the memory compensation amount.
Optionally, the update module 403 includes:
a threshold determination submodule, configured to determine that a sum of an actual memory amount that is not counted by the memory counting module for the preset module and the to-be-hidden amount of the memory is smaller than a preset threshold;
and the updating submodule is used for updating the total amount of the current memory occupied counted by the memory counting module according to the memory to-be-hidden amount.
Optionally, the apparatus 400 further comprises:
the current memory occupation amount object acquisition module is used for acquiring the current memory occupation amount object of the preset module;
the memory address offset determining module is used for performing decompiling on the current memory occupation amount object to obtain the relative memory address offset of the current memory occupation amount object;
and the memory amount acquisition module is used for acquiring the current memory occupation amount of the preset module according to the relative memory address offset of the current memory occupation amount object.
Optionally, the apparatus 400 further comprises:
the object quantity object acquisition module is used for respectively acquiring the object quantity objects of the preset module before and after the memory is allocated to the objects for the first time;
and the checking module is used for determining the difference value of the two acquired object quantity objects as a preset difference value before the current memory occupation amount of the preset module in the virtual machine is acquired, wherein the preset difference value is used for checking whether the relative memory address offset of the current memory occupation amount object is accurate or not.
Optionally, the virtual machine is an android virtual machine, and the preset module is a module for storing a JAVA large object.
With regard to the apparatus in the above-described embodiment, the specific manner in which each module performs the operation has been described in detail in the embodiment related to the method, and will not be elaborated here.
Based on the same inventive concept, embodiments of the present disclosure further provide a computer-readable medium, on which a computer program is stored, where the computer program, when executed by a processing apparatus, implements the steps of the method for managing a memory of a virtual machine in the method embodiments.
Based on the same inventive concept, an embodiment of the present disclosure further provides an electronic device, including:
a storage device having a computer program stored thereon;
a processing device, configured to execute the computer program in the storage device to implement the steps of the virtual machine memory management method in the method embodiment.
Referring now to FIG. 5, a block diagram of an electronic device 500 suitable for use in implementing embodiments of the present disclosure is shown. The terminal device in the embodiments of the present disclosure may include, but is not limited to, a mobile terminal such as a mobile phone, a notebook computer, a digital broadcast receiver, a PDA (personal digital assistant), a PAD (tablet computer), a PMP (portable multimedia player), a vehicle terminal (e.g., a car navigation terminal), and the like, and a stationary terminal such as a digital TV, a desktop computer, and the like. The electronic device shown in fig. 5 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiments of the present disclosure.
As shown in fig. 5, electronic device 500 may include a processing means (e.g., central processing unit, graphics processor, etc.) 501 that may perform various appropriate actions and processes in accordance with a program stored in a Read Only Memory (ROM)502 or a program loaded from a storage means 508 into a Random Access Memory (RAM) 503. In the RAM 503, various programs and data necessary for the operation of the electronic apparatus 500 are also stored. The processing device 501, the ROM 502, and the RAM 503 are connected to each other through a bus 504. An input/output (I/O) interface 505 is also connected to bus 504.
Generally, the following devices may be connected to the I/O interface 505: input devices 506 including, for example, a touch screen, touch pad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; output devices 507 including, for example, a Liquid Crystal Display (LCD), speakers, vibrators, and the like; storage devices 508 including, for example, magnetic tape, hard disk, etc.; and a communication device 509. The communication means 509 may allow the electronic device 500 to communicate with other devices wirelessly or by wire to exchange data. While fig. 5 illustrates an electronic device 500 having various means, it is to be understood that not all illustrated means are required to be implemented or provided. More or fewer devices may alternatively be implemented or provided.
In particular, according to an embodiment of the present disclosure, the processes described above with reference to the flowcharts may be implemented as computer software programs. For example, embodiments of the present disclosure include a computer program product comprising a computer program carried on a non-transitory computer readable medium, the computer program containing program code for performing the method illustrated by the flow chart. In such an embodiment, the computer program may be downloaded and installed from a network via the communication means 509, or installed from the storage means 508, or installed from the ROM 502. The computer program performs the above-described functions defined in the methods of the embodiments of the present disclosure when executed by the processing device 501.
It should be noted that the computer readable medium in the present disclosure can be a computer readable signal medium or a computer readable storage medium or any combination of the two. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples of the computer readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer diskette, 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 disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the present disclosure, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. In contrast, in the present disclosure, a computer readable signal medium may comprise a propagated data signal with computer readable program code embodied therein, either in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to: electrical wires, optical cables, RF (radio frequency), etc., or any suitable combination of the foregoing.
In some implementations, the electronic devices may communicate using any currently known or future developed network Protocol, such as HTTP (HyperText Transfer Protocol), and may be interconnected with any form or medium of digital data communication (e.g., a communications network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), the Internet (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future developed network.
The computer readable medium may be embodied in the electronic device; or may exist separately without being assembled into the electronic device.
The computer readable medium carries one or more programs which, when executed by the electronic device, cause the electronic device to: acquiring the current memory occupancy of a preset module in a virtual machine, wherein the preset module is a module for storing an object which does not need to be included in the memory statistics of a memory statistics module of the virtual machine; determining the amount of memory to be hidden according to the current memory occupation amount of the preset module; and updating the total amount of the current memory occupation counted by the memory counting module according to the amount of the memory to be hidden, wherein the total amount of the current memory occupation counted by the memory counting module does not include the amount of the memory to be hidden.
Computer program code for carrying out operations for the present disclosure may be written in any combination of one or more programming languages, including but not limited to an object oriented programming language such as Java, Smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The modules described in the embodiments of the present disclosure may be implemented by software or hardware. The name of a module does not form a limitation on the module itself under a certain condition, for example, the obtaining module may also be described as a module for obtaining a current memory occupancy amount of a preset module in the virtual machine.
The functions described herein above 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 a chip (SOCs), Complex Programmable Logic Devices (CPLDs), and the like.
In the context of this disclosure, a machine-readable medium may be a tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The 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, apparatus, or device, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer diskette, 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 disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
Example 1 provides a virtual machine memory management method, according to one or more embodiments of the present disclosure, including:
acquiring the current memory occupancy of a preset module in a virtual machine, wherein the preset module is a module for storing an object which does not need to be included in the memory statistics of a memory statistics module of the virtual machine;
determining the amount of memory to be hidden according to the current memory occupation amount of the preset module;
and updating the total amount of the current memory occupation counted by the memory counting module according to the amount of the memory to be hidden, wherein the total amount of the current memory occupation counted by the memory counting module does not include the amount of the memory to be hidden.
Example 2 provides the method of example 1, and the obtaining a current memory footprint of a preset module in the virtual machine includes:
determining that memory allocation for the object is successful;
acquiring a first current memory occupation amount of the preset module after the memory is successfully allocated to the object;
the determining the amount of memory to be hidden according to the current memory occupation amount of the preset module comprises the following steps:
and determining the memory to-be-hidden amount according to the first current memory occupation amount and the memory occupation amount of the preset module before the memory is allocated to the object.
Example 3 provides the method of example 1, wherein the obtaining a current memory footprint of a preset module in the virtual machine includes:
the acquiring the current memory occupation amount of the preset module in the virtual machine comprises the following steps:
determining that memory allocation for the object fails;
acquiring a second current memory occupation amount of a preset module in the virtual machine;
executing memory recovery;
acquiring a third current memory occupation amount of the preset module after the memory recovery is executed and the objects are successfully distributed to the memory;
the determining the amount of memory to be hidden according to the current memory occupation amount of the preset module comprises the following steps:
and under the condition that the second current memory occupation amount is smaller than the third current memory occupation amount, determining the memory to-be-hidden amount according to the second current memory occupation amount and the third current memory occupation amount.
Example 4 provides the method of example 3, further comprising, in accordance with one or more embodiments of the present disclosure:
determining memory compensation amount according to the second current memory occupation amount and the second current memory occupation amount under the condition that the second current memory occupation amount is larger than the third current memory occupation amount;
and updating the total current memory occupation amount counted by the memory counting module according to the memory compensation amount, wherein the total current memory occupation amount counted by the memory counting module comprises the memory compensation amount.
Example 5 provides the method of example 1, in accordance with one or more embodiments of the present disclosure: the updating the total amount of the current memory occupation counted by the memory counting module according to the memory to-be-hidden amount comprises:
determining that the sum of the actual memory amount not counted by the memory counting module for the preset module and the to-be-hidden amount of the memory is smaller than a preset threshold;
and updating the total amount of the current memory occupation counted by the memory counting module according to the memory to be hidden amount.
Example 6 provides the method of any one of examples 1-5, wherein the current memory footprint of the preset module is obtained by:
acquiring a current memory occupation amount object of the preset module;
performing decompiling on the current memory occupation amount object to obtain the relative memory address offset of the current memory occupation amount object;
and acquiring the current memory occupation amount of the preset module according to the relative memory address offset of the current memory occupation amount object.
Example 7 provides the method of example 6, further comprising, in accordance with one or more embodiments of the present disclosure:
respectively acquiring the object quantity objects of the preset module before and after the memory is allocated to the objects for the first time;
before the current memory occupation amount of a preset module in the virtual machine is obtained, determining that the difference value of the two obtained object quantity objects is a preset difference value, wherein the preset difference value is used for verifying whether the relative memory address offset of the current memory occupation amount object is accurate or not.
Example 7 provides the method of example 7, the virtual machine is an android virtual machine, and the provisioning module is a module that stores a JAVA large object.
Example 9 provides, in accordance with one or more embodiments of the present disclosure, a virtual machine memory management apparatus, comprising:
the system comprises an acquisition module, a storage module and a processing module, wherein the acquisition module is used for acquiring the current memory occupancy of a preset module in the virtual machine, and the preset module is a module used for storing objects which do not need to be included in the memory statistics of a memory statistics module of the virtual machine;
the determining module is used for determining the memory to-be-hidden amount according to the current memory occupied amount of the preset module;
and the updating module is used for updating the total current memory occupation amount counted by the memory counting module according to the memory to-be-hidden amount, wherein the total current memory occupation amount counted by the memory counting module does not include the memory to-be-hidden amount.
Example 10 provides a computer-readable medium having stored thereon a computer program that, when executed by a processing device, performs the steps of the method of any of examples 1-8, in accordance with one or more embodiments of the present disclosure.
Example 11 provides, in accordance with one or more embodiments of the present disclosure, an electronic device, comprising:
a storage device having a computer program stored thereon;
processing means for executing the computer program in the storage means to carry out the steps of the method of any of examples 1-8.
The foregoing description is only exemplary of the preferred embodiments of the disclosure and is illustrative of the principles of the technology employed. It will be appreciated by those skilled in the art that the scope of the disclosure herein is not limited to the particular combination of features described above, but also encompasses other embodiments in which any combination of the features described above or their equivalents does not depart from the spirit of the disclosure. For example, the above features and (but not limited to) the features disclosed in this disclosure having similar functions are replaced with each other to form the technical solution.
Further, while operations are depicted in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order. Under certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are included in the above discussion, these should not be construed as limitations on the scope of the disclosure. Certain features that are described in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. With regard to the apparatus in the above-described embodiment, the specific manner in which each module performs the operation has been described in detail in the embodiment related to the method, and will not be elaborated here.

Claims (11)

1. A virtual machine memory management method is characterized by comprising the following steps:
acquiring the current memory occupancy of a preset module in a virtual machine, wherein the preset module is a module for storing an object which does not need to be included in the memory statistics of a memory statistics module of the virtual machine;
determining the amount of memory to be hidden according to the current memory occupation amount of the preset module;
and updating the total amount of the current memory occupation counted by the memory counting module according to the amount of the memory to be hidden, wherein the total amount of the current memory occupation counted by the memory counting module does not include the amount of the memory to be hidden.
2. The method of claim 1, wherein the obtaining the current memory footprint of the preset module in the virtual machine comprises:
determining that memory allocation for the object is successful;
acquiring a first current memory occupation amount of the preset module after the memory is successfully allocated to the object;
the determining the amount of memory to be hidden according to the current memory occupation amount of the preset module comprises the following steps:
and determining the memory to-be-hidden amount according to the first current memory occupation amount and the memory occupation amount of the preset module before the memory is allocated to the object.
3. The method of claim 1, wherein the obtaining the current memory footprint of the preset module in the virtual machine comprises:
determining that memory allocation for the object fails;
acquiring a second current memory occupation amount of a preset module in the virtual machine;
executing memory recovery;
acquiring a third current memory occupation amount of the preset module after the memory recovery is executed and the objects are successfully distributed to the memory;
the determining the amount of memory to be hidden according to the current memory occupation amount of the preset module comprises the following steps:
and under the condition that the second current memory occupation amount is smaller than the third current memory occupation amount, determining the memory to-be-hidden amount according to the second current memory occupation amount and the third current memory occupation amount.
4. The method of claim 3, further comprising:
determining memory compensation amount according to the second current memory occupation amount and the third current memory occupation amount under the condition that the second current memory occupation amount is larger than the third current memory occupation amount;
and updating the total current memory occupation amount counted by the memory counting module according to the memory compensation amount, wherein the total current memory occupation amount counted by the memory counting module comprises the memory compensation amount.
5. The method according to claim 1, wherein the updating the total amount of the current memory usage counted by the memory counting module according to the amount of the memory to be hidden comprises:
determining that the sum of the actual memory amount not counted by the memory counting module for the preset module and the to-be-hidden amount of the memory is smaller than a preset threshold;
and updating the total amount of the current memory occupation counted by the memory counting module according to the memory to be hidden amount.
6. The method according to any one of claims 1 to 5, wherein the current memory occupancy of the preset module is obtained by:
acquiring a current memory occupation amount object of the preset module;
performing decompiling on the current memory occupation amount object to obtain the relative memory address offset of the current memory occupation amount object;
and acquiring the current memory occupation amount of the preset module according to the relative memory address offset of the current memory occupation amount object.
7. The method of claim 6, further comprising: respectively acquiring the object quantity objects of the preset module before and after the memory is allocated to the objects for the first time;
before the current memory occupation amount of a preset module in the virtual machine is obtained, determining that the difference value of the two obtained object quantity objects is a preset difference value, wherein the preset difference value is used for verifying whether the relative memory address offset of the current memory occupation amount object is accurate or not.
8. The method of claim 7, wherein the virtual machine is an android virtual machine, and the preset module is a module for storing JAVA large objects.
9. A virtual machine memory management apparatus, comprising:
the system comprises an acquisition module, a storage module and a processing module, wherein the acquisition module is used for acquiring the current memory occupancy of a preset module in the virtual machine, and the preset module is a module used for storing objects which do not need to be included in the memory statistics of a memory statistics module of the virtual machine;
the determining module is used for determining the memory to-be-hidden amount according to the current memory occupied amount of the preset module;
and the updating module is used for updating the total current memory occupation amount counted by the memory counting module according to the memory to-be-hidden amount, wherein the total current memory occupation amount counted by the memory counting module does not include the memory to-be-hidden amount.
10. A computer-readable medium, on which a computer program is stored, characterized in that the program, when being executed by processing means, carries out the steps of the method of any one of claims 1 to 8.
11. An electronic device, comprising:
a storage device having a computer program stored thereon;
processing means for executing the computer program in the storage means to carry out the steps of the method according to any one of claims 1 to 8.
CN202110721733.4A 2021-06-28 2021-06-28 Virtual machine memory management method and device, storage medium and electronic equipment Active CN113391882B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110721733.4A CN113391882B (en) 2021-06-28 2021-06-28 Virtual machine memory management method and device, storage medium and electronic equipment
PCT/CN2022/089013 WO2023273564A1 (en) 2021-06-28 2022-04-25 Virtual machine memory management method and apparatus, storage medium, and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110721733.4A CN113391882B (en) 2021-06-28 2021-06-28 Virtual machine memory management method and device, storage medium and electronic equipment

Publications (2)

Publication Number Publication Date
CN113391882A true CN113391882A (en) 2021-09-14
CN113391882B CN113391882B (en) 2023-12-22

Family

ID=77624346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110721733.4A Active CN113391882B (en) 2021-06-28 2021-06-28 Virtual machine memory management method and device, storage medium and electronic equipment

Country Status (2)

Country Link
CN (1) CN113391882B (en)
WO (1) WO2023273564A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023273564A1 (en) * 2021-06-28 2023-01-05 北京字节跳动网络技术有限公司 Virtual machine memory management method and apparatus, storage medium, and electronic device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941410B1 (en) * 2000-06-02 2005-09-06 Sun Microsystems, Inc. Virtual heap for a virtual machine
CN101221535A (en) * 2008-01-25 2008-07-16 中兴通讯股份有限公司 Garbage recovery mobile communication terminal of Java virtual machine and recovery method thereof
US20120102289A1 (en) * 2010-10-21 2012-04-26 International Business Machines Corporation Organization of a small object area and a large object area in a java heap
CN108073441A (en) * 2016-11-14 2018-05-25 阿里巴巴集团控股有限公司 A kind of virutal machine memory monitoring and managing method and equipment
US20190042406A1 (en) * 2017-08-01 2019-02-07 International Business Machines Corporation System and method to manage and share managed runtime memory for java virtual machine
CN111651236A (en) * 2020-05-11 2020-09-11 腾讯科技(深圳)有限公司 Virtual machine memory optimization processing method and related device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10423527B2 (en) * 2015-11-12 2019-09-24 Facebook, Inc. Memory management and image display for mobile devices
CN107967205B (en) * 2016-10-18 2020-12-29 阿里巴巴(中国)有限公司 Memory analysis method, device and system and computing equipment
CN108958891B (en) * 2018-07-26 2022-02-18 郑州云海信息技术有限公司 Virtual machine memory allocation method, device and terminal
CN113391882B (en) * 2021-06-28 2023-12-22 北京字节跳动网络技术有限公司 Virtual machine memory management method and device, storage medium and electronic equipment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941410B1 (en) * 2000-06-02 2005-09-06 Sun Microsystems, Inc. Virtual heap for a virtual machine
CN101221535A (en) * 2008-01-25 2008-07-16 中兴通讯股份有限公司 Garbage recovery mobile communication terminal of Java virtual machine and recovery method thereof
US20120102289A1 (en) * 2010-10-21 2012-04-26 International Business Machines Corporation Organization of a small object area and a large object area in a java heap
CN108073441A (en) * 2016-11-14 2018-05-25 阿里巴巴集团控股有限公司 A kind of virutal machine memory monitoring and managing method and equipment
US20190042406A1 (en) * 2017-08-01 2019-02-07 International Business Machines Corporation System and method to manage and share managed runtime memory for java virtual machine
CN111651236A (en) * 2020-05-11 2020-09-11 腾讯科技(深圳)有限公司 Virtual machine memory optimization processing method and related device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023273564A1 (en) * 2021-06-28 2023-01-05 北京字节跳动网络技术有限公司 Virtual machine memory management method and apparatus, storage medium, and electronic device

Also Published As

Publication number Publication date
CN113391882B (en) 2023-12-22
WO2023273564A1 (en) 2023-01-05

Similar Documents

Publication Publication Date Title
US11146502B2 (en) Method and apparatus for allocating resource
CN108052615B (en) Access request processing method, device, medium and electronic equipment
CN110851139B (en) Method and device for checking codes and electronic equipment
CN114625536B (en) Video memory allocation method, device, medium and electronic equipment
CN112650804B (en) Big data access method, device, system and storage medium
CN113391882B (en) Virtual machine memory management method and device, storage medium and electronic equipment
CN112306685B (en) Task isolation method, device, electronic equipment and computer readable medium
CN110545313B (en) Message push control method and device and electronic equipment
CN112965713B (en) Development method, device, equipment and storage medium of visual editor
CN111538717B (en) Data processing method, device, electronic equipment and computer readable medium
CN111756833B (en) Node processing method, node processing device, electronic equipment and computer readable medium
CN114625479A (en) Cloud edge collaborative application management method in edge computing and corresponding device
CN111240738B (en) File processing method, device, equipment and medium
CN113518183A (en) Camera calling method and device and electronic equipment
CN112163176A (en) Data storage method and device, electronic equipment and computer readable medium
CN112148497A (en) Disk resource management method and device and electronic equipment
CN111694670A (en) Resource allocation method, device, equipment and computer readable medium
CN113407309A (en) Virtual machine memory application method and device, storage medium and electronic equipment
CN111182062A (en) Service multi-live calling method and system and electronic equipment
CN116820354B (en) Data storage method, data storage device and data storage system
CN112148448B (en) Resource allocation method, apparatus, device and computer readable medium
CN111626787B (en) Resource issuing method, device, medium and equipment
CN111552469B (en) File processing method and device in application engineering and electronic equipment
CN112688863B (en) Gateway data processing method and device and electronic equipment
CN113448550B (en) Method and device for realizing collection management of classes, electronic equipment and computer 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