CN112817769A - Game resource dynamic caching method and device, storage medium and electronic equipment - Google Patents

Game resource dynamic caching method and device, storage medium and electronic equipment Download PDF

Info

Publication number
CN112817769A
CN112817769A CN202110245816.0A CN202110245816A CN112817769A CN 112817769 A CN112817769 A CN 112817769A CN 202110245816 A CN202110245816 A CN 202110245816A CN 112817769 A CN112817769 A CN 112817769A
Authority
CN
China
Prior art keywords
game
cache pool
resources
cache
resource
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
CN202110245816.0A
Other languages
Chinese (zh)
Other versions
CN112817769B (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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202110245816.0A priority Critical patent/CN112817769B/en
Priority claimed from CN202110245816.0A external-priority patent/CN112817769B/en
Publication of CN112817769A publication Critical patent/CN112817769A/en
Application granted granted Critical
Publication of CN112817769B publication Critical patent/CN112817769B/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

The disclosure provides a game resource dynamic cache method, a game resource dynamic cache device, a storage medium and electronic equipment, and relates to the technical field of computers. The game resource dynamic caching method comprises the following steps: initializing a first cache pool; when the CPU occupancy rate is monitored to meet a first preset condition, caching game resources to the first cache pool, and calling the game resources from the first cache pool when a game is run; and when the memory occupancy rate is monitored to meet a second preset condition, releasing at least one part of the game resources from the first cache pool. The game playing device solves the problem of card pause and flash back in the game playing process to a certain extent.

Description

Game resource dynamic caching method and device, storage medium and electronic equipment
Technical Field
The present disclosure relates to the field of computer technologies, and in particular, to a game resource dynamic caching method, a game resource dynamic caching apparatus, a computer-readable storage medium, and an electronic device.
Background
In a game, a game character controlled by a player, a game character not controlled by the player, a game scene, various game properties and the like all belong to game resources, and when the game runs, the game resources need to be cached from a storage device to a memory, and a game engine can process the game resources.
In the related art, generally, when game resources are read for the first time, the game resources are cached, the caching time is concentrated, and the problems of game jamming, game backing and the like can be caused when a CPU and a memory are just in a high load state during caching, while the CPU and the memory are idle at some time and the CPU and the memory are not fully utilized.
It is to be noted that the information disclosed in the above background section is only for enhancement of understanding of the background of the present disclosure, and thus may include information that does not constitute prior art known to those of ordinary skill in the art.
Disclosure of Invention
The present disclosure provides a game resource dynamic cache method, a game resource dynamic cache device, a computer-readable storage medium and an electronic device, thereby at least to some extent solving the problem of the game running in the related art that the game is paused and flashed.
Additional features and advantages of the disclosure will be set forth in the detailed description which follows, or in part will be obvious from the description, or may be learned by practice of the disclosure.
According to a first aspect of the present disclosure, a method for dynamically caching game resources is provided, including: initializing a first cache pool; when the CPU occupancy rate is monitored to meet a first preset condition, caching game resources to the first cache pool, and calling the game resources from the first cache pool when a game is run; and when the memory occupancy rate is monitored to meet a second preset condition, releasing at least one part of the game resources from the first cache pool.
In an exemplary embodiment of the present disclosure, the CPU occupancy satisfying the first preset condition includes: the CPU occupancy rate is greater than a first preset threshold value; the method further comprises the following steps: and when the CPU occupancy rate is monitored to be larger than the first preset threshold value, stopping caching the game resources in the first cache pool.
In an exemplary embodiment of the disclosure, after stopping caching game resources to the first cache pool, the method further comprises: when the CPU occupancy rate is monitored to be reduced below a second preset threshold value, the game resource caching to the first cache pool is restarted, and the second preset threshold value is smaller than the first preset threshold value.
In an exemplary embodiment of the present disclosure, the method further comprises: and creating an index for the game resource so as to search the game resource in the first cache pool through the index when the game resource is called.
In an exemplary embodiment of the disclosure, the releasing at least a portion of the game resources from the first cache pool includes: and releasing at least one part of the game resources from the first cache pool according to the release priority of the game resources.
In an exemplary embodiment of the present disclosure, the method further comprises: acquiring the calling frequency of the game resources and the initial priority of the game resources; and determining the release priority of the game resources according to the calling frequency of the game resources and the initial priority of the game resources.
In an exemplary embodiment of the present disclosure, the determining the release priority of the game resource according to the calling frequency of the game resource and the initial priority of the game resource includes: determining the additional priority of the game resources according to the calling frequency of the game resources; and combining the additional priority of the game resource with the initial priority of the game resource to obtain the release priority of the game resource.
In an exemplary embodiment of the disclosure, the obtaining the calling frequency of the game resource and the initial priority of the game resource includes: and acquiring the calling frequency of the game resources from a local database, wherein the local database is used for counting the calling frequency of the game resources.
In an exemplary embodiment of the disclosure, the obtaining the calling frequency of the game resource and the initial priority of the game resource includes: and acquiring the initial priority of the game resources by reading the game configuration information.
In an exemplary embodiment of the disclosure, the caching game resources to the first cache pool includes: pre-caching the game resources to the first cache pool when the game is started.
In an exemplary embodiment of the present disclosure, the method further comprises: and when the first cache pool has a fault, switching to use a second cache pool, caching the read game resources to the second cache pool, and calling the game resources from the second cache pool when the game is operated.
In an exemplary embodiment of the present disclosure, the initializing the first cache pool includes: and clearing the first cache pool, and resetting various game configuration parameters required by the cache.
In an exemplary embodiment of the disclosure, the memory occupancy includes one or more of: the total memory occupancy rate, the occupancy rate of the first cache pool in the memory, and the occupancy rate of the game process in the memory.
According to a second aspect of the present disclosure, there is provided a game resource dynamic cache apparatus, including: the initialization module is used for initializing the first cache pool; the cache module is used for caching game resources to the first cache pool when the CPU occupancy rate is monitored to meet a first preset condition so as to call the game resources from the first cache pool when a game is run; and the releasing module is used for releasing at least one part of the game resources from the first cache pool when the memory occupancy rate is monitored to meet a second preset condition.
According to a third aspect of the present disclosure, there is provided a computer readable storage medium having stored thereon a computer program which, when executed by a processor, implements the above game resource dynamic caching method.
According to a fourth aspect of the present disclosure, there is provided an electronic device comprising: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to perform the above game resource dynamic caching method via execution of the executable instructions.
The technical scheme of the disclosure has the following beneficial effects:
in the dynamic caching process of the game resources, when the CPU occupancy rate is monitored to meet a first preset condition, the game resources are cached in the first cache pool so that the game resources are called from the first cache pool when the game is operated, and when the memory occupancy rate is monitored to meet a second preset condition, at least one part of the game resources are released from the first cache pool. By monitoring the state of the CPU and the state of the memory, the game resource caching process is optimized, dynamic caching of game resources is realized, the idle state of the CPU can be fully utilized, the use efficiency of hardware is improved, the problems of jamming or flash retreat and the like caused by overlarge memory occupation of a game can be avoided, and the game experience of a player is ensured.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and together with the description, serve to explain the principles of the disclosure. It is apparent that the drawings in the following description are only some embodiments of the present disclosure, and that other drawings can be obtained from those drawings without inventive effort for a person skilled in the art.
FIG. 1 is a flow chart illustrating a method for dynamically caching game resources in the exemplary embodiment;
FIG. 2 illustrates a flow diagram of cache initiation in the exemplary embodiment;
FIG. 3 illustrates a flow chart for determining release priority of game resources in the present exemplary embodiment;
FIG. 4 illustrates a flow diagram of the creation of a local database in the exemplary embodiment;
FIG. 5 illustrates a flowchart for deriving a release priority of a game resource in the present exemplary embodiment;
FIG. 6 illustrates an example diagram of combining initial priorities and additional priorities in the present exemplary embodiment;
FIG. 7 is a system diagram illustrating dynamic caching of game resources in accordance with the exemplary embodiment;
FIG. 8 is a block diagram showing the structure of a game resource dynamic cache apparatus according to the exemplary embodiment;
fig. 9 shows an electronic device for implementing the above method in the present exemplary embodiment.
Detailed Description
Example embodiments will now be described more fully with reference to the accompanying drawings. Example embodiments may, however, be embodied in many different forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of example embodiments to those skilled in the art. The described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided to give a thorough understanding of embodiments of the disclosure. One skilled in the relevant art will recognize, however, that the subject matter of the present disclosure can be practiced without one or more of the specific details, or with other methods, components, devices, steps, and the like. In other instances, well-known technical solutions have not been shown or described in detail to avoid obscuring aspects of the present disclosure.
Furthermore, the drawings are merely schematic illustrations of the present disclosure and are not necessarily drawn to scale. The same reference numerals in the drawings denote the same or similar parts, and thus their repetitive description will be omitted. Some of the block diagrams shown in the figures are functional entities and do not necessarily correspond to physically or logically separate entities. These functional entities may be implemented in the form of software, or in one or more hardware modules or integrated circuits, or in different networks and/or processor devices and/or microcontroller devices.
Herein, "first", "second", "third", "fourth", etc. are labels for specific objects, and do not limit the number or order of the objects.
In the related art, in order to increase the speed of reading the resources from the storage device, the game resources are cached when the game resources are read for the first time. When the game resources which are not read are called, the game resources which need to be read are cached in the data structure and stored in the memory, when the game resources are called next time, the game resources cached in the memory are directly read, the caching time is concentrated, the problems of blocking and flash backing of the game can be caused under the condition that the CPU and the memory are just in high load during caching, such as the conditions of entering a game match, entering a game management interface and the like, and the problems that the CPU and the memory are idle at some time, such as waiting for the response of a server, the non-operation of a player, some scenario animation playing and the like, are not fully utilized.
In view of one or more of the above problems, exemplary embodiments of the present disclosure provide a game resource dynamic caching method, which may be executed by a game terminal, such as a smart device like a mobile phone, a tablet, a computer, etc.
Fig. 1 shows a schematic flow of a game resource dynamic caching method in the present exemplary embodiment, including the following steps S110 to S130:
step S110, initializing a first cache pool;
step S120, when the CPU occupancy rate is monitored to meet a first preset condition, caching game resources to a first cache pool so as to call the game resources from the first cache pool when the game is run;
step S130, when the memory occupancy rate is monitored to meet a second preset condition, releasing at least one part of game resources from the first cache pool.
In the dynamic caching process of the game resources, when the CPU occupancy rate is monitored to meet a first preset condition, the game resources are cached in the first cache pool so that the game resources are called from the first cache pool when the game is operated, and when the memory occupancy rate is monitored to meet a second preset condition, at least one part of the game resources are released from the first cache pool. By monitoring the state of the CPU and the state of the memory, the game resource caching process is optimized, dynamic caching of game resources is realized, the idle state of the CPU can be fully utilized, the use efficiency of hardware is improved, the problems of jamming or flash retreat and the like caused by overlarge memory occupation of a game can be avoided, and the game experience of a player is ensured.
Each step in fig. 1 will be described in detail below.
Step S110, initialize the first buffer pool.
The first cache pool may be a memory area opened up in the CPU cache, or may be a memory area opened up in the operating memory, and is used to store game resources. The first cache pool may be a memory area with a fixed size, or may be a memory area that is dynamically adjustable according to the amount of cached game resources. Generally, the memory includes two types, namely a volatile memory and a nonvolatile memory, the volatile memory can be an operating memory area and a CPU cache area in the mobile phone, and the nonvolatile memory can be a storage area of a memory card of the mobile phone. The memory in the present disclosure mainly refers to a volatile memory, and includes, for example, an operating memory area and a CPU cache area in a mobile phone.
The game resources may include game resources occupying memory space generated during the game running process, for example: the game role controlled by the player, the game role not controlled by the player, the game scene, various game item stages and other resources.
In an alternative embodiment, the first cache pool may be initialized by: and emptying the first cache pool, and resetting various game configuration parameters required by the cache.
And emptying the first cache pool, namely releasing all game resources stored in the first cache pool. The game configuration parameters required for caching may be, for example, CPU-related threshold parameters, memory-related threshold parameters, initial priorities of game resources, and other configurable related parameters. In the process of resetting each game configuration parameter required by the cache, the parameters used by the game resource cache can be configured and read by reading the configuration information of the game terminal or the field returned by the server, and the cache switch of the first cache pool is opened. This process ensures that the cache system can start running normally through the flush and reset operations.
In an optional implementation manner, when the first cache pool is initialized, a service for monitoring the CPU and the memory occupancy rate may be started, where the two monitoring services may be a monitoring process matched with the first cache pool, and may also call data of a monitoring service of the system itself. The start-up procedure is shown in fig. 2 and includes the following steps S210 to S240:
step S210, entering a game;
step S220, emptying the first cache pool, and resetting various game configuration parameters required by cache;
step S230, starting a service for monitoring the CPU occupancy rate, wherein the process can firstly acquire the CPU information of the equipment, configure the relevant parameters of the CPU, such as a service port, a target process and the like, and start a background thread to monitor the CPU occupancy rate;
step S240, starting a service for monitoring the memory occupancy rate, where the process may first obtain the total memory of the current device through an interface provided by the game terminal device operating system, configure relevant parameters for memory monitoring, such as a service port, a target process, and finally start a background thread to monitor the memory occupancy rate.
By starting the monitoring service, the CPU and memory occupancy rates are monitored, so that dynamic caching of game resources can be realized based on the CPU and memory occupancy rates in the following process. It should be noted that the two monitoring services are not strictly distinguished in sequence, but actually two tasks running in the background are started, and as long as the two tasks are successfully started, the two tasks will run in the running process of the game, and the monitoring of the CPU occupancy rate and the memory occupancy rate can be synchronous or asynchronous, for example, the CPU occupancy rate is monitored according to a first cycle, and the memory occupancy rate is monitored according to a second cycle.
And step S120, when the CPU occupancy rate is monitored to meet a first preset condition, caching the game resources to the first cache pool so as to call the game resources from the first cache pool when the game is run.
The CPU occupancy may represent CPU resources occupied by the running game process, and when a first preset condition is satisfied, may perform an operation of caching the game resources to the first cache pool. The first preset condition may be that the CPU occupancy is less than or equal to a first preset threshold, and when it is monitored that the CPU occupancy is less than or equal to the first preset threshold, the game resource is cached in the first cache pool. Taking the Unity game engine as an example for caching, a game resource is usually made into an AssetBundle compressed packet, the compressed packet is found from a storage device (for example, a computer hard disk or a mobile phone storage space), and a target resource in the compressed packet is read into a memory after decompression, and then the resource can be used in a game scene.
In an alternative embodiment, the CPU occupancy satisfying the first preset condition may include: and when the CPU occupancy rate is greater than a first preset threshold value, stopping caching the game resources in the first cache pool.
When the CPU occupancy rate is high, for example, when the CPU occupancy rate is greater than 80%, the related logic of the caching is stopped, and the game resources in the first cache pool are reserved for the game process to call, so that the problem that in some CPU high-consumption scenes, such as loading game level, complex operation and the like, the game resources are continuously cached in advance, serious blocking is caused, and the CPU resources need to be given out in time is avoided.
In an optional implementation manner, after the game resource is stopped being cached in the first cache pool, when it is monitored that the CPU occupancy rate is reduced below a second preset threshold, the game resource is restarted to be cached in the first cache pool, and the second preset threshold is smaller than the first preset threshold.
When the CPU occupancy rate is lower, for example, when the CPU occupancy rate is reduced to 60%, the related logic of the cache is restarted, the operation of caching the game resources to the first cache pool can be executed, the CPU load is avoided from being overlarge, and the purpose of efficiently utilizing the CPU is achieved.
It should be noted that the first preset threshold and the second preset threshold may be configured when the first cache pool is initialized, or may be configured when the service for monitoring the CPU occupancy is started.
In an alternative embodiment, an index may also be created for the game resource to look up the game resource in the first cache pool by the index when the game resource is invoked.
The present disclosure is not limited to the specific manner and timing for creating the index, and the following two manners are exemplary:
(1) an identifying index is created for the game resource.
For example, when a game resource is created, added to a game resource library, or loaded into a memory, a resource identifier may be created for the game resource, and the resource identifier has global uniqueness and may be used as an index. Therefore, when a game resource needs to be called, the game resource can be searched from the first cache pool through the resource identifier corresponding to the game resource.
(2) An index of cache addresses is created for the game resource.
For example, when a game resource is cached to the first cache pool, the cache address of the game resource in the first cache pool may be used as an index, and specifically, the offset of the cache address in the first cache pool may be recorded. Therefore, when a certain game resource needs to be called, the game resource can be searched from the first cache pool through the cache address offset of the game resource.
The above-mentioned indexes may rely on a mapping relationship, such as a dictionary in the C # programming language, and the indexes may be created in a key-value pair manner. Before or when the game resources are cached in the first cache pool, an index is created for the game resources, so that the game process can confirm whether the game resources to be read are cached in the first cache pool at any time through the index, and if the game resources to be read are cached, the corresponding game resources can be quickly searched when the game process calls the game resources through the index.
In an optional implementation manner, in the process of caching the game resource to the first cache pool, the game resource may be pre-cached to the first cache pool when the game is started.
The pre-caching is to cache the required game resources in advance, for example, after the game is started, the game resources are cached before the game resources are read for the first time, so that the game resources can be directly read from the cache when being called for the first time, and the game resources do not need to be read from a nonvolatile memory such as a memory card, so that the speed of reading the game resources for the first time is increased, and the game experience of a user is smoother.
In one embodiment, the game resources may be pre-cached according to a priority order in which the resources are invoked, for example, the main interface is pre-cached when the game is started, the sub-interface is pre-cached after the main interface is cached, and the like. Therefore, when a player enters a certain game interface, resources required by the game interface are cached in advance, and when the player enters the game interface, corresponding resources can be directly read from the first cache pool, so that the loading speed of the game interface is increased, and the game can run more smoothly.
In an optional implementation manner, when the first cache pool fails, the second cache pool is switched to be used, the read game resources are cached to the second cache pool, and the game resources are called from the second cache pool when the game is run.
The first cache pool is failed, which refers to a situation that cache logic cannot be normally executed in a caching process, for example, cache failures such as cache avalanche, cache penetration, and cache breakdown occur. When the first cache pool breaks down, the read game resources are cached to the second cache pool, the cache switch of the first cache pool is closed, and the game resources are called from the second cache pool when the game is run. The second cache pool is used as a standby cache pool, belongs to a different cache mechanism from the pre-cache of the first cache pool, and when the game resource is called for the first time, the game resource needs to be read from a nonvolatile memory such as a memory card, and then the game resource is cached in the second cache pool, so that the game resource can be directly read from the second cache pool when the resource is called for the next time, and the reading speed is accelerated. As can be seen, the second cache pool is slower than the first cache pool in the first invocation speed of the game resource, and therefore serves as a backup scheme for the first cache pool. In addition, after the second cache pool is switched to, the first cache pool can be initialized again, the first cache pool is emptied, and various game configuration parameters required by caching can be reset. After the initialization operation is completed, the cache switch of the first cache pool is opened, the first cache pool is continuously adopted to cache the game resources, and the read game resources are cached to the first cache pool. In the process, when the cache fails, the fault-tolerant function is realized through switching operation, and the normal running of the game can be ensured.
The game resource is cached continuously, the memory occupation is larger and larger, so that the memory state can be monitored in the game running process, and when the memory occupancy rate reaches a set threshold value, some cached resources can be released.
Step S130, when the memory occupancy rate is monitored to meet a second preset condition, releasing at least one part of game resources from the first cache pool.
The memory occupancy may include one or more of:
the total memory occupancy rate refers to the occupancy rate of each application process in a volatile memory when the game terminal runs;
the occupancy rate of the first cache pool refers to the occupancy rate of the game resources cached in the first cache pool to the memory of the cache pool;
the occupancy rate of the first cache pool in the memory refers to the occupancy rate of the first cache pool in the volatile memory;
the occupancy rate of the game process in the memory refers to the occupancy rate of the game process in the volatile memory when the game runs.
It should be noted that the first cache pool may be a memory area with a fixed size, or may be a memory area that is dynamically adjustable according to the amount of game resources cached. The specific type of cache pool to be used may be set by a developer according to experience, and is not specifically limited herein.
In an optional implementation manner, the meeting of the memory occupancy rate by the second preset condition may include: and when the memory occupancy rate is detected to be greater than a third preset threshold value, releasing a part of resources from the first cache pool until the memory occupancy rate is lower than a fourth preset threshold value, wherein the fourth preset threshold value is smaller than the third preset threshold value.
The third preset threshold and the fourth preset threshold may be configured when the first cache pool is initialized, or may be configured when the service for monitoring the memory occupancy rate is started. Since the hardware configuration of different game terminals may vary greatly, different thresholds may be set for different game terminals. The game terminal with the small memory can be set with a lower threshold value, the buffer amount of game resources in the memory is reduced, and the game card pause or the flash quit caused by the overlarge memory occupation is avoided while the reading is accelerated. A higher threshold value can be set for a game terminal with a large memory, more resources are cached, and the loading speed of a game scene is increased. The process has stronger pertinence, so that the game experience of the player is better.
In one embodiment, the two or more memory occupancy rates may be monitored, and when each memory occupancy rate reaches a preset ratio, it is determined that a second preset condition is satisfied. For example, the total memory occupancy rate reaches 60%, the occupancy rate of the first cache pool reaches 70%, and at this time, the game resources are released from the first cache pool.
In an alternative embodiment, at least a portion of the game resources may be released from the first cache pool in step S130 according to the release priority of the game resources.
The releasing priority can be set for different game resources, the releasing priority can represent the releasing sequence of the game resources, the game resources with lower releasing priority are released preferentially, namely some unusual resources are released preferentially, the game resources with higher calling frequency are reserved as far as possible, and the releasing sequence of the game resources is determined.
In an optional implementation manner, step S130 may also be implemented in such a manner that the game resources are sequentially added to the release list according to a sequence from a low release priority to a high release priority, and when it is monitored that the game resources in the release list reach a preset threshold, all the game resources in the release list are released.
For example, to release 50MB of game resources, the game resources in the first cache pool are sorted according to the release priority, and are added into the release list one by one starting from the game resource with the lowest release priority, and when the game resources in the release list reach 50MB, the addition is stopped, and all the resources in the release list are released.
In an alternative embodiment, as shown in fig. 3, the release priority of the game resource may be determined by the following steps S310 to S320:
step S310, obtaining the calling frequency of the game resources and the initial priority of the game resources.
The calling frequency of the game resource refers to the calling frequency of the game process to the game resource. The initial priority of the game resources refers to the priority marked for the game resources in advance, and the game resources with higher initial priority are reserved preferentially to control the release sequence of the game resources.
In an alternative embodiment, when obtaining the calling frequency of the game resource and the initial priority of the game resource, the calling frequency of the game resource may be obtained from a local database, and the local database is used for counting the calling frequency of the game resource.
The above-mentioned local database is used for storing the calling frequency of the game resource, and the specific creation process is shown in fig. 4, and specifically includes the following steps:
step S410, the game process calls game resources;
step S420, counting the calling frequency of the game resources by recording the calling times of the game resources;
step S430, writing the calling frequency of the game resource into a local database.
The local database is created through the steps in fig. 4, the calling frequency of the game resources is recorded in the process of the game played by the player, and the priority of the game resources can be adjusted in real time, so that the cache policy better conforms to the game behavior of the player. For example, player a frequently invokes game resource 1, the initial priority of game resource 1 is increased to retain game resource 1 in the cache as much as possible when the cache resource is released.
In an optional implementation manner, when the calling frequency of the game resource and the initial priority of the game resource are obtained, the initial priority of the game resource may be obtained by reading the game configuration information.
The game configuration information can be recorded in a configuration table, and when a new game resource is added in the development process, the initial priority of the game resource is recorded and marked on the inner side of the configuration table. The configuration table may be loaded at the beginning of the game for subsequent acquisition of the initial priority of the game resources. The initial priority can be set by developers according to experience in the development process, and the release priority of the game resources can be well controlled globally.
Step S320, determining the release priority of the game resources according to the calling frequency of the game resources and the initial priority of the game resources.
The game resources can be subjected to basic priority ranking according to the initial priority of each game resource in the first cache pool, and then the priority ranking is adjusted according to the calling frequency of the game resources, so that the final release priority ranking is obtained. And by combining the calling frequency of the game resources in the game running process and the preset initial priority, a more appropriate game resource release strategy can be provided for the player.
In an alternative embodiment, as shown in fig. 5, the release priority of the game resource can be obtained through the following steps S510 to S520, and the release priority is released preferentially to the game resource with a lower priority by combining the initial priority and the additional priority and comprehensively considering the release sequence of the game resource, which is simple and easy to implement. The method comprises the following concrete steps:
step S510, determining an additional priority of the game resource according to the calling frequency of the game resource.
A higher premium may be set for game resources that are invoked more frequently and a lower premium may be set for game resources that are invoked less frequently. For example, when the calling frequency is between 0 and 9, the extra priority of the game resource is set to 1, and when the calling frequency is between 10 and 20, the extra priority of the game resource is set to 2, the calling frequency range is only an exemplary illustration, and in the actual application process, a developer can perform targeted setting according to the actual calling situation of the game resource.
Step S520, combining the additional priority of the game resource with the initial priority of the game resource to obtain the release priority of the game resource.
In the process of obtaining the release priority by combining the additional priority and the initial priority, referring to the example diagram of combining the initial priority and the additional priority as shown in fig. 6, when obtaining the release priority of the game resource 601, first, the configuration table 602 and the local database 603 are respectively queried, the initial priority 604 is obtained from the configuration table 602, the additional priority 605 is obtained from the local database 603, then the initial priority 604 and the additional priority 605 are added to obtain the final priority 606 of the game resource 601, and the final priority 606 is used as the release priority, so as to release the game resources in the order from small to large according to the final priority.
In addition, the present disclosure also provides a system structure diagram of dynamic cache of game resources, as shown in fig. 7. The memory monitoring service 701 performs memory monitoring on the game process 702 and the first cache pool 703, and feeds back the monitored memory state to the resource cache logic 704, and the CPU monitoring service 705 performs CPU monitoring on the game process 702, and feeds back the monitored CPU state to the resource cache logic 704. Here, the game process 702 relies on the resource cache logic 704 to perform game resource caching, and the first cache pool 703 relies on the priority tag 706 and the resource index 707 to perform game resource release and lookup.
It should be noted that the resource caching logic 704 refers to the logic of the game resource dynamic caching method, and depends on the first cache pool 703 to cache and release game resources. The priority flag 706 is a flag for priority of release of game resources, and is used to determine the order of release of game resources. Resource index 707 is a query index created for game resources and is used to find a target game resource.
The exemplary embodiment of the present disclosure also provides a game resource dynamic cache device. As shown in fig. 8, the dynamic game resource caching apparatus 800 may include:
an initialization module 810, configured to initialize a first cache pool;
the cache module 820 is configured to cache the game resource to the first cache pool when it is monitored that the CPU occupancy rate meets a first preset condition, so as to call the game resource from the first cache pool when the game is running;
the releasing module 830 is configured to release at least a portion of the game resources from the first cache pool when it is monitored that the memory occupancy rate satisfies a second preset condition.
In an alternative embodiment, the CPU occupancy satisfying the first preset condition includes: the CPU occupancy rate is greater than a first preset threshold value; the caching module 820 may be configured to: and when the CPU occupancy rate is monitored to be larger than a first preset threshold value, stopping caching the game resources in the first cache pool.
In an alternative embodiment, after stopping caching the game resource to the first cache pool, the cache module 820 may be further configured to: when the CPU occupancy rate is monitored to be lower than a second preset threshold value, the game resource caching to the first cache pool is started again, and the second preset threshold value is smaller than the first preset threshold value.
In an optional implementation manner, the dynamic game resource caching apparatus 800 further includes: and the index creating module is used for creating an index for the game resource so as to search the game resource in the first cache pool through the index when the game resource is called.
In an alternative embodiment, the releasing module 830 further includes: a release submodule, configured to release at least a portion of the game resources from the first cache pool, configured to: and releasing at least one part of the game resources from the first cache pool according to the release priority of the game resources.
In an alternative embodiment, the releasing module 830 further includes: the acquisition module is used for acquiring the calling frequency of the game resources and the initial priority of the game resources; and the priority determining module is used for determining the release priority of the game resources according to the calling frequency of the game resources and the initial priority of the game resources.
In an alternative embodiment, the priority determination module is configured to: determining the additional priority of the game resources according to the calling frequency of the game resources; and combining the additional priority of the game resources with the initial priority of the game resources to obtain the release priority of the game resources.
In an alternative embodiment, the obtaining module may be configured to: and acquiring the calling frequency of the game resources from a local database, wherein the local database is used for counting the calling frequency of the game resources.
In an optional implementation, the obtaining module may be further configured to: and acquiring the initial priority of the game resources by reading the game configuration information.
In an alternative embodiment, the caching module 820 caches the game resource to the first cache pool, and may be configured to: game resources are pre-cached to a first cache pool when a game is started.
In an optional implementation manner, the dynamic game resource caching apparatus 800 further includes: a switching module configured to: and when the first cache pool has a fault, switching to use a second cache pool, caching the read game resources to the second cache pool, and calling the game resources from the second cache pool when the game is run.
In an alternative embodiment, the initialization module 810 may be configured to: and emptying the first cache pool, and resetting various game configuration parameters required by the cache.
In an alternative embodiment, the memory occupancy rate in the releasing module 830 may include one or more of the following: the total memory occupancy rate, the occupancy rate of the first cache pool in the memory, and the occupancy rate of the game process in the memory.
The specific details of each part in the dynamic game resource caching apparatus 800 are described in detail in the embodiment of the method part, and details that are not disclosed may refer to the embodiment of the method part, and thus are not described again.
Exemplary embodiments of the present disclosure also provide a computer-readable storage medium having stored thereon a program product capable of implementing the above game resource dynamic caching method of the present specification. In some possible embodiments, various aspects of the disclosure may also be implemented in the form of a program product comprising program code for causing an electronic device to perform the steps according to various exemplary embodiments of the disclosure described in the above-mentioned "exemplary methods" section of this specification, when the program product is run on the electronic device. The program product may employ a portable compact disc read only memory (CD-ROM) and include program code, and may be run on an electronic device, such as a personal computer. However, the program product of the present disclosure is not limited thereto, and in this document, a 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.
The program product may employ any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. A 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 (a non-exhaustive list) of the readable storage medium include: an electrical connection having one or more wires, a portable disk, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
A computer readable signal medium may include a propagated data signal with readable program code embodied therein, for example, 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 readable signal medium may also be any readable medium that is not a 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 readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Program code for carrying out operations for the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, C + + or the like 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 computing device, partly on the user's device, as a stand-alone software package, partly on the user's computing device and partly on a remote computing device, or entirely on the remote computing device or server. In the case of a remote computing device, the remote computing device may be connected to the user computing device through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computing device (e.g., through the internet using an internet service provider).
The exemplary embodiment of the present disclosure also provides an electronic device capable of implementing the above game resource dynamic cache method. An electronic device 900 according to this exemplary embodiment of the present disclosure is described below with reference to fig. 9. The electronic device 900 shown in fig. 9 is only an example and should not bring any limitations to the functionality or scope of use of the embodiments of the present disclosure.
As shown in fig. 9, electronic device 900 may take the form of a general purpose computing device. Components of electronic device 900 may include, but are not limited to: at least one processing unit 910, at least one memory unit 920, a bus 930 that connects the various system components (including the memory unit 920 and the processing unit 910), and a display unit 940.
The storage unit 920 stores program code, which may be executed by the processing unit 910, so that the processing unit 910 performs the steps according to various exemplary embodiments of the present disclosure described in the above-mentioned "exemplary method" section of this specification. For example, processing unit 910 may perform any one or more of the method steps of fig. 1-5.
The storage unit 920 may include readable media in the form of volatile memory units, such as a random access memory unit (RAM)921 and/or a cache memory unit 922, and may further include a read only memory unit (ROM) 923.
Storage unit 920 may also include a program/utility 924 having a set (at least one) of program modules 925, such program modules 925 including, but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which, or some combination thereof, may comprise an implementation of a network environment.
Bus 930 can be any of several types of bus structures including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.
The electronic device 900 may also communicate with one or more external devices 1000 (e.g., keyboard, pointing device, bluetooth device, etc.), with one or more devices that enable a user to interact with the electronic device 900, and/or with any devices (e.g., router, modem, etc.) that enable the electronic device 900 to communicate with one or more other computing devices. Such communication may occur via input/output (I/O) interface 950. Also, the electronic device 900 may communicate with one or more networks (e.g., a Local Area Network (LAN), a Wide Area Network (WAN) and/or a public network, such as the Internet) via the network adapter 960. As shown, the network adapter 960 communicates with the other modules of the electronic device 900 via the bus 930. It should be appreciated that although not shown, other hardware and/or software modules may be used in conjunction with the electronic device 900, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, among others.
Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein may be implemented by software, or by software in combination with necessary hardware. Therefore, the technical solution according to the embodiments of the present disclosure may be embodied in the form of a software product, which may be stored in a non-volatile storage medium (which may be a CD-ROM, a usb disk, a removable hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which may be a personal computer, a server, a terminal device, or a network device, etc.) to execute the method according to the exemplary embodiments of the present disclosure.
Furthermore, the above-described figures are merely schematic illustrations of processes included in methods according to exemplary embodiments of the present disclosure, and are not intended to be limiting. It will be readily understood that the processes shown in the above figures are not intended to indicate or limit the chronological order of the processes. In addition, it is also readily understood that these processes may be performed synchronously or asynchronously, e.g., in multiple modules.
It should be noted that although in the above detailed description several modules or units of the device for action execution are mentioned, such a division is not mandatory. Indeed, the features and functions of two or more modules or units described above may be embodied in one module or unit, according to exemplary embodiments of the present disclosure. Conversely, the features and functions of one module or unit described above may be further divided into embodiments by a plurality of modules or units.
As will be appreciated by one skilled in the art, aspects of the present disclosure may be embodied as a system, method or program product. Accordingly, various aspects of the present disclosure may be embodied in the form of: an entirely hardware embodiment, an entirely software embodiment (including firmware, microcode, etc.) or an embodiment combining hardware and software aspects that may all generally be referred to herein as a "circuit," module "or" system. Other embodiments of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the disclosure disclosed herein. This application is intended to cover any variations, uses, or adaptations of the disclosure following, in general, the principles of the disclosure and including such departures from the present disclosure as come within known or customary practice within the art to which the disclosure pertains. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the disclosure being indicated by the following claims.
It will be understood that the present disclosure is not limited to the precise arrangements described above and shown in the drawings and that various modifications and changes may be made without departing from the scope thereof. The scope of the present disclosure is to be limited only by the following claims.

Claims (16)

1. A dynamic cache method for game resources is characterized by comprising the following steps:
initializing a first cache pool;
when the CPU occupancy rate is monitored to meet a first preset condition, caching game resources to the first cache pool, and calling the game resources from the first cache pool when a game is run;
and when the memory occupancy rate is monitored to meet a second preset condition, releasing at least one part of the game resources from the first cache pool.
2. The method of claim 1, wherein the CPU occupancy satisfying a first preset condition comprises: the CPU occupancy rate is greater than a first preset threshold value; the method further comprises the following steps:
and when the CPU occupancy rate is monitored to be larger than the first preset threshold value, stopping caching the game resources in the first cache pool.
3. The method of claim 2, wherein after ceasing to cache game resources to the first cache pool, the method further comprises:
when the CPU occupancy rate is monitored to be reduced below a second preset threshold value, the game resource caching to the first cache pool is restarted, and the second preset threshold value is smaller than the first preset threshold value.
4. The method of claim 1, further comprising:
and creating an index for the game resource so as to search the game resource in the first cache pool through the index when the game resource is called.
5. The method of claim 1, wherein said releasing at least a portion of the game resources from the first cache pool comprises:
and releasing at least one part of the game resources from the first cache pool according to the release priority of the game resources.
6. The method of claim 5, further comprising:
acquiring the calling frequency of the game resources and the initial priority of the game resources;
and determining the release priority of the game resources according to the calling frequency of the game resources and the initial priority of the game resources.
7. The method of claim 6, wherein determining the release priority of the game resource based on the invocation frequency of the game resource and the initial priority of the game resource comprises:
determining the additional priority of the game resources according to the calling frequency of the game resources;
and combining the additional priority of the game resource with the initial priority of the game resource to obtain the release priority of the game resource.
8. The method of claim 6, wherein obtaining the calling frequency of the game resource and the initial priority of the game resource comprises:
and acquiring the calling frequency of the game resources from a local database, wherein the local database is used for counting the calling frequency of the game resources.
9. The method of claim 6, wherein obtaining the calling frequency of the game resource and the initial priority of the game resource comprises:
and acquiring the initial priority of the game resources by reading the game configuration information.
10. The method of claim 1, wherein caching game resources to the first cache pool comprises:
pre-caching the game resources to the first cache pool when the game is started.
11. The method of claim 10, further comprising:
and when the first cache pool has a fault, switching to use a second cache pool, caching the read game resources to the second cache pool, and calling the game resources from the second cache pool when the game is operated.
12. The method of any of claims 1 to 11, wherein initializing the first cache pool comprises:
and clearing the first cache pool, and resetting various game configuration parameters required by the cache.
13. The method of any of claims 1 to 11, wherein the memory occupancy comprises one or more of:
the total memory occupancy rate, the occupancy rate of the first cache pool in the memory, and the occupancy rate of the game process in the memory.
14. A dynamic cache apparatus for game resources, comprising:
the initialization module is used for initializing the first cache pool;
the cache module is used for caching game resources to the first cache pool when the CPU occupancy rate is monitored to meet a first preset condition so as to call the game resources from the first cache pool when a game is run;
and the releasing module is used for releasing at least one part of the game resources from the first cache pool when the memory occupancy rate is monitored to meet a second preset condition.
15. A computer-readable storage medium, on which a computer program is stored, which, when being executed by a processor, carries out the method of any one of claims 1 to 13.
16. An electronic device, comprising:
a processor; and
a memory for storing executable instructions of the processor;
wherein the processor is configured to perform the method of any of claims 1 to 13 via execution of the executable instructions.
CN202110245816.0A 2021-03-05 Game resource dynamic caching method and device, storage medium and electronic equipment Active CN112817769B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110245816.0A CN112817769B (en) 2021-03-05 Game resource dynamic caching method and device, storage medium and electronic equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110245816.0A CN112817769B (en) 2021-03-05 Game resource dynamic caching method and device, storage medium and electronic equipment

Publications (2)

Publication Number Publication Date
CN112817769A true CN112817769A (en) 2021-05-18
CN112817769B CN112817769B (en) 2024-05-28

Family

ID=

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080147971A1 (en) * 2006-12-14 2008-06-19 Microsoft Corporation Predictive caching of assets to improve level load time on a game console
CN101847127A (en) * 2010-06-18 2010-09-29 福建星网锐捷网络有限公司 Memory management method and device
CN105760228A (en) * 2016-01-29 2016-07-13 珠海汇迪科技有限公司 Method for improving game fluency under low-memory Android device
WO2017005149A1 (en) * 2015-07-03 2017-01-12 北京奇虎科技有限公司 Game acceleration method and device
CN107469352A (en) * 2017-07-12 2017-12-15 福建天晴数码有限公司 The resource caching method of game front end, storage medium
US20190124174A1 (en) * 2016-01-22 2019-04-25 Alibaba Group Holding Limited Resource cache management method and system and apparatus
CN109857554A (en) * 2019-01-14 2019-06-07 珠海金山网络游戏科技有限公司 A kind of resource caching method and system of lower limit
CN109871336A (en) * 2019-01-14 2019-06-11 珠海金山网络游戏科技有限公司 A kind of dynamic buffering method of adjustment and system
CN109876436A (en) * 2019-01-14 2019-06-14 珠海金山网络游戏科技有限公司 A kind of caching resource setting method and system
KR20190076582A (en) * 2017-12-22 2019-07-02 주식회사 넥슨코리아 Apparatus and method for providing game
WO2019141107A1 (en) * 2018-01-18 2019-07-25 阿里巴巴集团控股有限公司 Program running and virtual machine instance realization method, apparatus and device, and medium
CN110665223A (en) * 2019-11-01 2020-01-10 网易(杭州)网络有限公司 Game resource caching method, decision network training method and device
US20200349160A1 (en) * 2018-01-19 2020-11-05 Alibaba Group Holding Limited Data query method, apparatus and device

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080147971A1 (en) * 2006-12-14 2008-06-19 Microsoft Corporation Predictive caching of assets to improve level load time on a game console
CN101847127A (en) * 2010-06-18 2010-09-29 福建星网锐捷网络有限公司 Memory management method and device
WO2017005149A1 (en) * 2015-07-03 2017-01-12 北京奇虎科技有限公司 Game acceleration method and device
US20190124174A1 (en) * 2016-01-22 2019-04-25 Alibaba Group Holding Limited Resource cache management method and system and apparatus
CN105760228A (en) * 2016-01-29 2016-07-13 珠海汇迪科技有限公司 Method for improving game fluency under low-memory Android device
CN107469352A (en) * 2017-07-12 2017-12-15 福建天晴数码有限公司 The resource caching method of game front end, storage medium
KR20190076582A (en) * 2017-12-22 2019-07-02 주식회사 넥슨코리아 Apparatus and method for providing game
WO2019141107A1 (en) * 2018-01-18 2019-07-25 阿里巴巴集团控股有限公司 Program running and virtual machine instance realization method, apparatus and device, and medium
US20200349160A1 (en) * 2018-01-19 2020-11-05 Alibaba Group Holding Limited Data query method, apparatus and device
CN109871336A (en) * 2019-01-14 2019-06-11 珠海金山网络游戏科技有限公司 A kind of dynamic buffering method of adjustment and system
CN109876436A (en) * 2019-01-14 2019-06-14 珠海金山网络游戏科技有限公司 A kind of caching resource setting method and system
CN109857554A (en) * 2019-01-14 2019-06-07 珠海金山网络游戏科技有限公司 A kind of resource caching method and system of lower limit
CN110665223A (en) * 2019-11-01 2020-01-10 网易(杭州)网络有限公司 Game resource caching method, decision network training method and device

Similar Documents

Publication Publication Date Title
CN107832100B (en) APK plug-in loading method and terminal thereof
US20220221998A1 (en) Memory management method, electronic device and non-transitory computer-readable medium
KR100690804B1 (en) Method for executing garbage collection of mobile terminal
CN110532197B (en) Memory recovery method and device, electronic equipment and storage medium
CN111258921B (en) Garbage memory recycling method and device, electronic equipment and storage medium
CN110764906B (en) Memory recovery processing method and device, electronic equipment and storage medium
CN109710396B (en) Method and device for information acquisition and memory release
CN111954072B (en) Multimedia playing method, device, multimedia player and medium
WO2021077261A1 (en) Application program management method and apparatus, electronic device, and storage medium
CN115328742B (en) Container information monitoring method and device, storage medium and electronic equipment
CN107408073B (en) Reducing memory commit overhead using memory compression
US20120284458A1 (en) Selecting an auxiliary storage medium for writing data of real storage pages
KR101175505B1 (en) System for providing user data storage enviroment using network based file system in n-screen
CN110895503A (en) Application performance monitoring method and client
WO2019206260A1 (en) Method and apparatus for reading file cache
US9870400B2 (en) Managed runtime cache analysis
CN110427394B (en) Data operation method and device
CN112817769B (en) Game resource dynamic caching method and device, storage medium and electronic equipment
CN109634782B (en) Method and device for detecting system robustness, storage medium and terminal
CN111381953A (en) Process management method, device, storage medium and electronic equipment
CN112817769A (en) Game resource dynamic caching method and device, storage medium and electronic equipment
CN115934999A (en) Video stream data storage method, device and medium based on block file
CN112948073A (en) Optimization method and device for running memory and storage medium
CN116610648A (en) Log storage method and device, electronic equipment and storage medium
CN113687942A (en) Detection method and device and electronic equipment

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