CN110764771B - Dynamic compiling method and device, readable storage medium and electronic equipment - Google Patents

Dynamic compiling method and device, readable storage medium and electronic equipment Download PDF

Info

Publication number
CN110764771B
CN110764771B CN201810847490.7A CN201810847490A CN110764771B CN 110764771 B CN110764771 B CN 110764771B CN 201810847490 A CN201810847490 A CN 201810847490A CN 110764771 B CN110764771 B CN 110764771B
Authority
CN
China
Prior art keywords
node
profile analysis
analysis data
calling
calling times
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810847490.7A
Other languages
Chinese (zh)
Other versions
CN110764771A (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.)
Loongson Technology Corp Ltd
Original Assignee
Loongson Technology Corp 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 Loongson Technology Corp Ltd filed Critical Loongson Technology Corp Ltd
Priority to CN201810847490.7A priority Critical patent/CN110764771B/en
Publication of CN110764771A publication Critical patent/CN110764771A/en
Application granted granted Critical
Publication of CN110764771B publication Critical patent/CN110764771B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

The invention provides a dynamic compiling method and device, a readable storage medium and electronic equipment, wherein the dynamic compiling method acquires profile analysis data corresponding to a hot spot method; correcting the stain data in the profile analysis data to generate target profile analysis data; and compiling the hot spot method into a local code according to the target profile analysis data. The dynamic compiling method provided by the invention can improve the accuracy of the profile analysis data, and the system performance can be improved by compiling the corrected target profile analysis data to be a hot spot method.

Description

Dynamic compiling method and device, readable storage medium and electronic equipment
Technical Field
The present invention relates to the field of virtual machines, and in particular, to a dynamic compiling method and apparatus, a readable storage medium, and an electronic device.
Background
The virtual machine comprises an interpreter and a dynamic compiler; the virtual machine is initially interpreted and executed by an interpreter, and with the improvement of technology, when the virtual machine detects that a certain method is frequently called, the method is called a hot spot method, and a compiling thread in the virtual machine compiles the hot spot method into machine codes (short for local codes) related to a local platform by using a just-in-time compiler according to a certain compiling and scheduling strategy. When the hot spot method is executed, the local code can be directly called, and the execution efficiency of the program can be greatly improved.
During the interpretation and execution of the interpreter of the virtual machine, the program is generally subjected to profile analysis, so as to guide the optimization process of the subsequent dynamic compilation by collecting a large amount of operation information, wherein the collected operation information is profile analysis data; in a specific implementation process, profile analysis data is collected through a profile analysis system, and a hot spot method is compiled through the profile analysis system. The system counts the execution times of any one method m in the program, and when the execution times exceed a certain threshold value, the system starts a section analysis function of the method m to obtain section analysis data.
Conditional activation of profile analysis can lead to a method that when compiling, part of code fragments can not be counted for executing the profile analysis yet, so that the collected profile analysis data contains stain data which is inconsistent with the actual profile analysis data, and the profile analysis data has poor accuracy; for example: the number of calls of a certain call point is zero in the profile analysis data, and in fact, the number of calls of the call point is not zero. The stain data in the profile analysis data can cause misjudgment of optimization algorithms based on the profile analysis data, such as inlining, and finally cause the performance of the system to be greatly reduced.
Disclosure of Invention
The invention provides a dynamic compiling method and device, a readable storage medium and electronic equipment, which are used for solving the problem of poor accuracy of profile analysis data of a hot spot method in the prior art.
In order to solve the problems, the invention discloses a dynamic compiling method, wherein the method comprises the following steps: acquiring profile analysis data corresponding to a hot spot method; the hot spot method is a group of continuous virtual machine instruction sequences; correcting the stain data in the profile analysis data to generate target profile analysis data; and compiling the hot spot method into a local code according to the target profile analysis data.
In order to solve the above problems, the present invention also discloses a dynamic compiling device, wherein the device comprises: the acquisition module is used for acquiring profile analysis data corresponding to the hot spot method; the hot spot method is a group of continuous virtual machine instruction sequences; the correction module is used for correcting the stain data in the profile analysis data to generate target profile analysis data; and the compiling module is used for compiling the hot spot method into a local code according to the target profile analysis data.
In order to solve the above problems, the present invention further discloses an electronic device, wherein the electronic device includes a memory, and one or more programs, wherein the one or more programs are stored in the memory and configured to execute one or more dynamic compiling methods of the present invention by one or more processors.
In order to solve the above-mentioned problems, the present invention discloses a readable storage medium again, wherein the instructions in the readable storage medium, when executed by a processor of an electronic device, enable the electronic device to perform one or more of the dynamic compilation methods of the present invention.
Compared with the prior art, the invention has the following advantages:
according to the dynamic compiling method and device, the readable storage medium and the electronic device, which are provided by the embodiment of the invention, in the dynamic compiling process, the stain data which is inconsistent with the actual stain in the profile analysis data is corrected, so that the accuracy of the profile analysis data can be improved. The system performance can be improved through the hot spot method corresponding to the corrected target profile analysis data compilation.
Drawings
FIG. 1 is a flow chart showing the steps of a dynamic compiling method according to a first embodiment of the invention;
FIG. 2 is a flow chart of steps of a dynamic compiling method according to a second embodiment of the invention;
FIG. 3 is a flowchart of steps for cycling through first nodes in a first set of nodes according to a first predetermined rule;
FIG. 4 is a block diagram showing a dynamic compiling apparatus according to a third embodiment of the invention;
FIG. 5 is a block diagram showing a dynamic compiling apparatus according to a fourth embodiment of the invention;
fig. 6 is a block diagram of an electronic device according to a fifth embodiment of the present invention.
Detailed Description
In order that the above-recited objects, features and advantages of the present invention will become more readily apparent, a more particular description of the invention will be rendered by reference to the appended drawings and appended detailed description.
Virtual machines virtualize a computer primarily by means of software, and the virtual computer also typically supports a unique set of instructions, referred to as the virtual machine instruction set. The virtual machine relies on a local physical machine, and simulation execution is performed on the local machine on a given virtual machine instruction sequence through an execution engine of the virtual machine. The execution engine of the virtual machine can be realized by an interpreter, and most of the execution engines of the virtual machine contain the interpreter because the interpreter has the characteristics of high portability, low realization cost, less memory occupation and the like. The interpreter takes instructions, instruction dispatch, operand fetching and execution in units of one virtual machine instruction. However, the performance of simple interpretation is low, so a dynamic compiling system is introduced into the virtual machine to improve the performance of the virtual machine. The compiler is the core of a dynamic compiling system, and the compiler takes a group of continuous virtual machine instruction sequences (basic blocks, functions or methods) as a unit, and compiles the unit into a local CPU (Central Processing Unit ) instruction sequence, called local code, and then directly executes the compiled local code by hardware. The compiler eliminates repeated instruction fetching and instruction dispatching processes and performs a great amount of effective optimization in translation, so the performance of the compiler is often more than 10 times that of an interpreter. Since the compiler is dynamically compiled during the running process of the program, it is also called a just-in-time compiler.
Dynamic compilation is a key for determining the performance of a virtual machine, and unlike traditional static compilation such as C/C++, dynamic compilation behavior occurs during program running and introduces additional compilation overhead. Studies have shown that the temporal distribution of program execution has a distinct locality feature, i.e., most of the time of program execution is concentrated on a small portion of code. In order to minimize the overhead created by dynamic compilation, modern virtual machine dynamic compilation systems are typically designed and implemented according to the "selective compilation" theory. The core idea is as follows: only frequently executed parts of the program (called program hot spots or hot spot methods) are compiled. All methods in the program are started by the interpreter. During the interpretation and execution of the interpreter, the virtual machine maintains a method call counter and an internal loop counter for each method, respectively, and the sum of the two timers is the accumulated call times of the method. When the sum of the two counters is equal to the hot spot recognition threshold (the second preset number), the corresponding method is recognized as a hot spot method, and the hot spot method is added into the compiling queue to wait for compiling. Then, the compiling thread in the virtual machine can select a hot spot method from the compiling queue for compiling according to a certain compiling scheduling strategy. After the compiling of the method is completed, the local codes generated after the compiling are directly executed by calling the method, so that the execution efficiency of the program is greatly improved.
In order to improve the quality of the local code generated by dynamic compilation, the virtual machine typically performs profile analysis on the program in units of methods during interpretation and execution, and collects a large amount of runtime information by counting, so as to guide the optimization process of the subsequent dynamic compilation. The runtime information collected by profile analysis includes: data such as method call information, branch jump information, object type distribution and the like. The section analysis result reflects the running characteristics of the program, and the local code generated by compiling is more suitable for the actual behavior characteristics of the program based on the dynamic compiling of the section analysis data, so that a better performance optimization effect is obtained. Therefore, it is important to design advanced profile analysis systems to improve the performance of the system.
In modern high performance virtual machine systems, profile analysis data for method calls, i.e., statistics of individual method call sites in the method being profile analyzed, is typically used to determine whether to perform inline optimization. Inline optimization is the most important compilation optimization means, and plays a decisive role in system performance. The method calling profile analysis data which does not accord with the actual execution behavior can mislead the virtual machine to carry out wrong inline optimization decision, thereby causing the performance of the system to be reduced. It is critical to the design of the profiling system to provide as accurate profile analysis data as possible regarding the method invocation.
The invention provides a dynamic compiling scheme, which can obtain profile analysis data with high accuracy to compile a hot spot method, thereby improving the system performance. The dynamic compiling scheme provided in the invention is specifically described in the following embodiments.
Example 1
Referring to FIG. 1, a flowchart illustrating steps of a dynamic compilation method according to an embodiment of the present invention is shown.
The execution main body of the dynamic compiling method provided by the embodiment of the invention can be a CPU, and the method comprises the following steps:
step 101: and acquiring profile analysis data corresponding to the hot spot method.
The hot spot method is a set of continuous virtual machine instruction sequences. In the embodiment of the invention, the virtual machine program comprises a plurality of methods, and when the corresponding accumulated calling times of the same method are larger than or equal to the second preset times, the method is determined to be a hot spot method. A method typically includes a plurality of call points, where the call points represent virtual instructions for a method call, and the number of times each call point is called is very critical information in profile analysis data.
Step 102: correcting the stain data in the profile analysis data to generate target profile analysis data.
The profile analysis data comprises call points contained in the hot spot method and call times corresponding to the call points. In the specific implementation process, when correcting the taint data in the profile analysis data, the data with zero calling times corresponding to the calling points in the profile analysis data can be obtained, and the taint data is obtained according to the data with zero calling times, so that the obtained taint data is corrected, and the target profile analysis data is generated.
The process of initiating acquisition of profile analysis data and determination of hot spot methods is set forth below by way of example. For example: the operational logic of the integration method is as follows:
the profile analysis data for the integration method records the accumulated call times statistics of each call point 1, 2 and 3 called in the historical execution process of the method. Assuming that the second preset number of times is 10000 as the hotspot identification threshold, the first preset number of times is 3300 as the profile analysis start threshold. During the execution of the integration method, when the accumulated calling number of the method in the for loop is 3300, the accumulated calling number is the sum of the cycle number recorded by the internal cycle counter and the calling number recorded by the method calling counter, so that the sum of the accumulated calling number of the integration method is greater than or equal to the first preset number, and the virtual machine starts the section analysis of the integration method. At this point, the procedure is still executing in the for loop of the integration method, so the profile analysis system can only count call sites 2 and 3. When count=10000 in the for loop, the integration method is identified as a program hot spot, and the virtual machine then starts compiling the integration method. While the just-in-time compiler compiles the integer method, the integer method may still be executed in the for loop. Since call site 1 has not yet been executed after the profile analysis is started, the cumulative call count value for call site 1 in the profile analysis data obtained by the just-in-time compiler is zero. In practice, once the integration method is run, the call site 1 must execute, and it is not practical to count the cumulative call number to zero in the profile analysis data. At this time, the profile analysis data of the call site 1 is one stain data.
Step 103: and compiling the hot spot method into a local code according to the target profile analysis data.
In the embodiment of the invention, the dynamic compiler compiles the hot spot method according to the target profile analysis data, compiles the hot spot method into the local code, and refers to the related prior art for a specific compiling mode, and the method is not particularly limited in the embodiment of the invention.
In the embodiment of the invention, the stain data is zero-call data, and the stain data can be determined according to the zero-call data and corrected one by one; and correcting the taint data based on the section analysis data corresponding to the call points with zero call times, so that the accuracy of the section analysis data finally obtained is improved, and the performance of the dynamic compiling system is ensured.
According to the dynamic compiling method provided by the embodiment of the invention, in the dynamic compiling process, the stain data which is inconsistent with the actual stain data in the profile analysis data is corrected, so that the accuracy of the profile analysis data can be improved. The system performance can be improved through the hot spot method corresponding to the corrected target profile analysis data compilation.
Example two
Referring to fig. 2, a dynamic compiling method according to a second embodiment of the invention is shown.
The dynamic compiling method of the embodiment of the invention specifically comprises the following steps:
step 201: and recording profile analysis data corresponding to any one method according to a preset rule aiming at any one method, and determining the profile analysis data as a hot spot method when the accumulated calling times of any one method are greater than or equal to second preset times.
The method comprises the steps that a plurality of methods are included in a virtual machine program, the methods can be called according to operation requirements in the operation process of the virtual machine program, and when any one method is called, a profile analysis system judges whether the accumulated calling times corresponding to any one method are larger than or equal to a first preset times and smaller than a second preset times; if the accumulated calling times are greater than or equal to the first preset times and less than the second preset times, executing any one method and starting to generate profile analysis data corresponding to the method; if the accumulated calling times are smaller than the first preset times, executing the method only; and when the accumulated calling times corresponding to any one method is greater than or equal to the second preset times, setting any one method as a hot spot method. Wherein, when any method is called once, the corresponding accumulated calling times are increased by one; and monitoring the accumulated calling times corresponding to any method in real time until the profile analysis data generation starting condition or the hot spot method judging condition is met.
When the accumulated calling times corresponding to any one of the methods is greater than or equal to the first preset times, determining that the any one of the methods meets the profile analysis starting condition, and executing the any one of the methods and simultaneously generating profile analysis data corresponding to the any one of the methods. When the accumulated calling times corresponding to any method is larger than or equal to the second preset times, determining that the method is a hot spot method, and compiling the method into a local code based on profile analysis data corresponding to the method generated by history.
Step 202: and acquiring profile analysis data corresponding to the hot spot method.
The hot spot method is a set of continuous virtual machine instruction sequences. The profile analysis data contains call points contained in the hot spot method and call times corresponding to the call points. And constructing a CFG (ontrol flow graph, program control flow graph) corresponding to the hot spot method, wherein each call point in the hot spot method corresponds to one node in the CFG, the CFG comprises an association relation among the nodes, and the node in the CFG is marked as CFG (m). When the profile analysis data is corrected, the corresponding relation between the calling point and the calling times is converted into the corresponding relation between the nodes and the calling times.
Step 203: and acquiring data with zero calling times corresponding to calling points in the profile analysis data.
In the embodiment of the invention, after the profile analysis data is obtained, in order to improve the accuracy of the profile analysis data, the profile analysis data needs to be corrected, and when the correction is performed, the data with zero calling times corresponding to calling points in the profile analysis data is mainly obtained; screening the data with the calling times of zero, determining the taint data from the data, correcting the taint data, and generating target profile analysis data, wherein the specific correction mode is shown in the steps 204 to 205.
Step 204: and determining a first node set called by the hot spot method based on a control flow graph corresponding to the pre-constructed hot spot method.
Each call point included in the hot spot method has a corresponding node in the program control flow graph.
The first node set called by the hot spot method can be represented by calls (m), and the first node set includes at least one first node.
Step 205: and traversing each first node in the first node set according to a first preset rule, determining the first node with the calling times of the taint data, and correcting the calling times corresponding to the determined first node until the calling times corresponding to the determined first node are not changed.
Optionally, the determined number of times of calling corresponding to the first node is not changed any more, which means that after the first node is traversed for a plurality of times, the determined number of times of calling corresponding to the first node is the same; wherein, the adjacent times may be preset times.
The process of circularly traversing each first node in the first node set according to the first preset rule and correcting the calling times corresponding to each first node is shown in fig. 3, which specifically includes the following sub-steps:
sub-step 2051: respectively determining a second node set which is necessary to pass when each first node is called according to a program control flow diagram corresponding to a pre-constructed hot spot method;
wherein each node in the second set of nodes belongs to the first set of nodes.
For any first node v E calls (m), solving a necessary node set of v in CFG (m), and recording the obtained necessary node set as dom (v).
Sub-step 2052: when judging that the calling times corresponding to any one first node in the profile analysis data are zero, keeping the calling times corresponding to any one first node unchanged;
in the embodiment of the present invention, if any one of the first nodes satisfies a preset condition, the any one of the first nodes is used as the determined first node, i.e. the first node with the calling frequency of stain data; the preset condition is that the number of calls corresponding to any one first node is zero, but when the any one first node is used as a necessary node of other first nodes, the number of calls corresponding to the other first nodes is not zero.
Sub-step 2053: when judging that the calling times corresponding to any one first node in the profile analysis data are not zero, traversing each second node in a second node set which is necessary to pass through when any one first node is called according to a second preset rule, and correcting the calling times corresponding to each second node.
Specifically, traversing each second node in the second node set which is necessary for calling any first node according to a second preset rule, and when correcting the calling times corresponding to each second node, executing the following operations for each second node in the second node set:
judging whether the calling times corresponding to the second node in the profile analysis data are zero or not; if yes, correcting the calling times corresponding to the second node to be a preset value; wherein the preset value is a non-zero value; if not, the calling times corresponding to the second node are kept unchanged.
The preset value may be set by those skilled in the art according to actual requirements, for example: set to 1, 2, 3, etc., which is not particularly limited in the embodiment of the present invention.
By performing the sub-steps 2051 to 2053, the stain data can be effectively checked out and corrected.
The above method for correcting the number of calls corresponding to the determined first node specifically includes the following steps: for any first node v, when the calling times corresponding to v are zero, skipping the node, and checking the next first node; when the number of calls corresponding to the first node v is not zero, checking each second node passing by v, based on the theory that the number of calls corresponding to each second node through which the first node v must pass is not zero, checking whether a second node with the number of calls being zero exists in the second nodes through which the first node v must pass, if any second node with the number of calls being zero exists, indicating that the number of calls corresponding to the second node w is wrong, namely the number of calls corresponding to the second node w is stain data, and correcting the number of calls corresponding to the second node w is needed. Similarly, the first node v is also a necessary node of other nodes, so that the first node v with the calling times being zero can be corrected by detecting other first nodes with the calling times being non-zero. When the call number corresponding to any one first node is zero, but the call number corresponding to the other first node is not zero when the call number corresponding to any one first node is taken as a necessary node of the other first node, the call number corresponding to the any one first node is the stain data, and the stain data can be effectively detected and corrected based on the correction mode of the call number corresponding to the first node.
In the embodiment of the invention, the node identifier corresponding to each node in the first node set and the second node set is not changed, that is, the node identifier corresponding to each node is unique, any one second node is corrected in the traversing process according to the second rule, and the corrected calling times corresponding to the second node can be used as the calling times corresponding to the first node pointed by the node identifier corresponding to the second node. For example, the node including the first node in the first node set is identified as the node a, the number of calls corresponding to the node a when the node a is taken as the first node is zero, and the node a belongs to the necessary node set of the node b, that is, the node a is taken as the second node at this time, but the number of calls corresponding to the node b is not zero, so that when the node a is taken as the second node, the node a is corrected to a preset value, that is, the number of calls corresponding to the node a when the node a is taken as the first node is corrected to a preset value.
Step 206: and determining the corrected calling times corresponding to each first node as target profile analysis data.
Step 207: the hot spot method is compiled into a native code according to the target profile analysis data.
The dynamic compiler compiles the hot spot method according to the target profile analysis data, and the specific compiling mode is referred to the related prior art, which is not particularly limited in the embodiment of the invention.
In addition to the beneficial effects of the dynamic compiling method in the first embodiment, the dynamic compiling method provided by the embodiment of the invention circularly traverses each node called by the hot spot method, corrects the call times of the stain data in the call times corresponding to each node, determines the call times corresponding to each corrected node as target profile analysis data, and can improve the comprehensiveness and accuracy of data correction.
Example III
Referring to fig. 4, a block diagram of a dynamic compiling apparatus according to a third embodiment of the invention is shown.
The dynamic compiling device of the embodiment of the invention comprises: the acquiring module 401 is configured to acquire profile analysis data corresponding to a hotspot method; the hot spot method is a group of continuous virtual machine instruction sequences; a correction module 402, configured to correct the stain data in the profile analysis data, and generate target profile analysis data; and the compiling module 403 is configured to compile the hot spot method into a native code according to the target profile analysis data.
According to the dynamic compiling device provided by the embodiment of the invention, in the dynamic compiling process, the stain data which does not accord with the actual stain data in the profile analysis data is corrected, so that the accuracy of the profile analysis data can be improved. The system performance can be improved through the hot spot method corresponding to the corrected target profile analysis data compilation.
Example IV
Referring to fig. 5, a block diagram of a dynamic compiling apparatus according to a fourth embodiment of the invention is shown.
The dynamic compiling device according to the embodiment of the invention is further optimized for the device in the third embodiment, and the optimized dynamic compiling device may include: the acquiring module 501 is configured to acquire profile analysis data corresponding to a hotspot method; the hot spot method is a group of continuous virtual machine instruction sequences; the correction module 502 is configured to correct the stain data in the profile analysis data to generate target profile analysis data; and a compiling module 503, configured to compile the hot spot method into a native code according to the target profile analysis data.
Preferably, the correction module 502 includes: an obtaining submodule 5021, configured to obtain data with a call number of zero corresponding to a call point in the profile analysis data, where the hotspot method includes at least one call point; the profile analysis data comprises each calling point and corresponding calling times; and a correction submodule 5022, configured to determine taint data from the data with the calling number of zero, and correct the taint data to generate target profile analysis data.
Preferably, the correction submodule 5022 includes: a first determining unit 50221, configured to determine, based on a program control flow diagram corresponding to the hotspot method that is pre-configured, a first node set called by the hotspot method; each call point included in the hot spot method has a corresponding node in the program control flow graph; a traversing unit 50222, configured to circularly traverse each first node in the first node set according to a first preset rule, determine that the call number is a first node of the taint data, and correct the determined call number corresponding to the first node until the determined call number corresponding to the first node is no longer changed; the second determining unit 50223 is configured to determine, as target profile analysis data, the corrected number of calls corresponding to each first node.
Preferably, the traversing unit 50222 is specifically configured to: according to the program control flow diagram corresponding to the pre-constructed hot spot method, respectively determining a second node set which is necessary to pass when each first node is called; wherein each node in the second node set belongs to a first node set; when judging that the calling times corresponding to any one first node in the profile analysis data are zero, if the any one first node meets the preset condition, taking the any one first node as the determined first node, and keeping the calling times corresponding to the determined first node unchanged; when judging that the calling times corresponding to any one first node in the profile analysis data are not zero, traversing each second node in a second node set which is necessary to pass through when any one first node is called according to a second preset rule, and correcting the calling times corresponding to each second node respectively; and correcting the determined calling times corresponding to the first node according to the corrected calling times corresponding to all the second nodes.
Preferably, the traversing unit 50222 traverses each second node in the second node set that is necessary for the any first node to be invoked according to a second preset rule, and is specifically configured to correct the number of invoking times corresponding to each second node: for each second node in the second set of nodes, performing the following: judging whether the calling times corresponding to the second node in the profile analysis data are zero or not; if yes, correcting the calling times corresponding to the second node to be a preset value; wherein the preset value is a non-zero value; if not, keeping the calling times corresponding to the second node unchanged.
The dynamic compiling device in the embodiment of the present invention is used for implementing the corresponding dynamic compiling method in the foregoing method embodiment, and has the beneficial effects of implementing the corresponding method, which is not described herein again.
Example five
Referring to fig. 6, a schematic structural diagram of an electronic device for dynamic compiling according to a fifth embodiment of the invention is shown.
FIG. 6 is a block diagram of an electronic device for dynamic compilation, according to an example embodiment.
Referring to fig. 6, the electronic device may include one or more of the following components: a processing component 602, a memory 604, a power component 606, a multimedia component 608, an audio component 610, an input/output (I/O) interface 612, a sensor component 614, and a communication component 616.
The processing component 602 generally controls overall operation of the electronic device, such as operations associated with display, data communication, camera operations, and recording operations. The processing element 602 may include one or more processors 620 to execute instructions to perform all or part of the steps of the methods described above. Further, the processing component 602 can include one or more modules that facilitate interaction between the processing component 602 and other components. For example, the processing component 602 may include a multimedia module to facilitate interaction between the multimedia component 608 and the processing component 602.
The memory 604 is configured to store various types of data to support operations at the electronic device. Examples of such data include instructions for any application or method operating on the electronic device, contact data, phonebook data, messages, pictures, videos, and the like. The memory 604 may be implemented by any type or combination of volatile or nonvolatile memory devices such as Static Random Access Memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic or optical disk.
The power supply component 606 provides power to the various components of the electronic device. The power supply components 606 may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power for the terminal 600.
The multimedia component 608 includes a screen between the electronic device and the user that provides an output interface. In some embodiments, the screen may include a Liquid Crystal Display (LCD) and a Touch Panel (TP). If the screen includes a touch panel, the screen may be implemented as a touch screen to receive input signals from a user. The touch panel includes one or more touch sensors to sense touches, swipes, and gestures on the touch panel. The touch sensor may sense not only the boundary of a touch or slide action, but also the duration and pressure associated with the touch or slide operation. In some embodiments, the multimedia component 608 includes a front camera and/or a rear camera. When the electronic device is in an operation mode, such as a shooting mode or a video mode, the front camera and/or the rear camera may receive external multimedia data. Each front camera and rear camera may be a fixed optical lens system or have focal length and optical zoom capabilities.
The audio component 610 is configured to output and/or input audio signals. For example, the audio component 610 includes a Microphone (MIC) configured to receive external audio signals when the terminal is in an operation mode, such as a call mode, a recording mode, and a voice recognition mode. The received audio signals may be further stored in the memory 604 or transmitted via the communication component 616. In some embodiments, audio component 610 further includes a speaker for outputting audio signals.
The I/O interface 612 provides an interface between the processing component 602 and peripheral interface modules, which may be a keyboard, click wheel, buttons, etc. These buttons may include, but are not limited to: homepage button, volume button, start button, and lock button.
The sensor assembly 614 includes one or more sensors for providing status assessment of various aspects of the electronic device 600. For example, the sensor assembly 614 may detect the on/off state of the electronic device 600, the relative positioning of the components, such as the display and keypad of the terminal, the sensor assembly 614 may also detect the change in position of the terminal or one of the components of the terminal, the presence or absence of user contact with the electronic device, the orientation or acceleration/deceleration of the electronic device, and the change in temperature of the electronic device. The sensor assembly 614 may include a proximity sensor configured to detect the presence of nearby objects in the absence of any physical contact. The sensor assembly 614 may also include a light sensor, such as a CMOS or CCD image sensor, for use in imaging applications. In some embodiments, the sensor assembly 614 may also include an acceleration sensor, a gyroscopic sensor, a magnetic sensor, a pressure sensor, or a temperature sensor.
The communication component 616 is configured to facilitate communication between the electronic device and other devices, either wired or wireless. The electronic device may access a wireless network based on a communication standard, such as WiFi,2G, or 3G, or a combination thereof. In one exemplary embodiment, the communication part 616 receives a broadcast signal or broadcast-related information from an external broadcast management system via a broadcast channel. In an exemplary embodiment, the communication component 616 further includes a Near Field Communication (NFC) module to facilitate short range communications. For example, the NFC module may be implemented based on Radio Frequency Identification (RFID) technology, infrared data association (IrDA) technology, ultra Wideband (UWB) technology, bluetooth (BT) technology, and other technologies.
In an exemplary embodiment, the electronic device may be implemented by one or more Application Specific Integrated Circuits (ASICs), digital Signal Processors (DSPs), digital Signal Processing Devices (DSPDs), programmable Logic Devices (PLDs), field Programmable Gate Arrays (FPGAs), controllers, microcontrollers, microprocessors, or other electronic elements for performing the dynamic compilation method described above.
The dynamic compiling method comprises the following steps: acquiring profile analysis data corresponding to a hot spot method; the hot spot method is a group of continuous virtual machine instruction sequences; correcting the stain data in the profile analysis data to generate target profile analysis data; and compiling the hot spot method into a local code according to the target profile analysis data.
Preferably, the hotspot method comprises at least one call site; the profile analysis data comprises each calling point and corresponding calling times; correcting the stain data in the profile analysis data to generate target profile analysis data, wherein the method comprises the following steps of: acquiring data with zero calling times corresponding to calling points in the profile analysis data; and determining the taint data from the data with zero calling times, correcting the taint data, and generating target profile analysis data.
Preferably, the step of correcting the stain data to generate target profile analysis data includes: determining a first node set called by the hot spot method based on a program control flow diagram corresponding to the pre-constructed hot spot method; each call point included in the hot spot method has a corresponding node in the program control flow graph; according to a first preset rule, circularly traversing each first node in the first node set, determining that the calling times are first nodes of the taint data, and correcting the determined calling times corresponding to the first nodes until the determined calling times corresponding to the first nodes are not changed any more; and determining the corrected calling times corresponding to each first node as target profile analysis data.
Preferably, the step of circularly traversing each first node in the first node set according to a first preset rule, determining a first node with call times of taint data, and correcting the determined call times corresponding to the first node includes: according to the program control flow diagram corresponding to the pre-constructed hot spot method, respectively determining a second node set which is necessary to pass when each first node is called; wherein each node in the second node set belongs to a first node set; when judging that the calling times corresponding to any one first node in the profile analysis data are zero, if the any one first node meets the preset condition, taking the any one first node as the determined first node, and keeping the calling times corresponding to the determined first node unchanged; when judging that the calling times corresponding to any one first node in the profile analysis data are not zero, traversing each second node in a second node set which is necessary to pass through when any one first node is called according to a second preset rule, and correcting the calling times corresponding to each second node respectively; and correcting the determined calling times corresponding to the first node according to the corrected calling times corresponding to all the second nodes.
Preferably, the step of traversing each second node in the second node set that is necessary for the any one first node to be invoked according to a second preset rule, and correcting the number of invocations corresponding to the determined second node includes: for each second node in the second set of nodes, performing the following: judging whether the calling times corresponding to the second node in the profile analysis data are zero or not; if yes, correcting the calling times corresponding to the second node to be a preset value; wherein the preset value is a non-zero value; if not, keeping the calling times corresponding to the second node unchanged.
In an exemplary embodiment, a non-transitory computer readable storage medium is also provided, such as memory 604, including instructions executable by processor 620 of an electronic device to perform the dynamic compilation method described above. For example, the non-transitory computer readable storage medium may be ROM, random Access Memory (RAM), CD-ROM, magnetic tape, floppy disk, optical data storage device, etc.
A non-transitory computer readable storage medium, which when executed by a processor of an electronic device, causes the electronic device to perform any one of the dynamic compilation methods shown in the above embodiments.
The electronic device in the embodiment of the present invention is configured to implement the corresponding dynamic compiling method in the foregoing multiple method embodiments, and has the beneficial effects of implementing the corresponding method, which is not described herein again.
In this specification, each embodiment is described in a progressive manner, and each embodiment is mainly described by differences from other embodiments, and identical and similar parts between the embodiments are all enough to be referred to each other. For the device embodiments, since they are substantially similar to the method embodiments, the description is relatively simple, and reference is made to the description of the method embodiments for relevant points.
The above detailed description of the dynamic compiling method and device, the readable storage medium and the electronic device provided by the invention applies specific examples to illustrate the principle and implementation of the invention, and the above description of the examples is only used to help understand the method and core idea of the invention; meanwhile, as those skilled in the art will have variations in the specific embodiments and application scope in accordance with the ideas of the present invention, the present description should not be construed as limiting the present invention in view of the above.
The algorithms and displays presented herein are not inherently related to any particular computer, electronic system, or other apparatus. Various general-purpose systems may also be used with the teachings herein. The required structure for a construction of such a system is apparent from the description above. In addition, the present invention is not directed to any particular programming language. It will be appreciated that the teachings of the present invention described herein may be implemented in a variety of programming languages, and the above description of specific languages is provided for disclosure of enablement and best mode of the present invention.
In the description provided herein, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In some instances, well-known methods, structures and techniques have not been shown in detail in order not to obscure an understanding of this description.
Similarly, it should be appreciated that in the foregoing description of exemplary embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various inventive aspects. However, the disclosed method should not be construed as reflecting the intention that: i.e., the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims following the detailed description are hereby expressly incorporated into this detailed description, with each claim standing on its own as a separate embodiment of this invention.
Those skilled in the art will appreciate that the modules in the apparatus of the embodiments may be adaptively changed and disposed in one or more apparatuses different from the embodiments. The modules or units or components of the embodiments may be combined into one module or unit or component and, furthermore, they may be divided into a plurality of sub-modules or sub-units or sub-components. Any combination of all features disclosed in this specification (including any accompanying claims, abstract and drawings), and all of the processes or units of any method or apparatus so disclosed, may be used in combination, except insofar as at least some of such features and/or processes or units are mutually exclusive. Each feature disclosed in this specification (including any accompanying claims, abstract and drawings), may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise.
Furthermore, those skilled in the art will appreciate that while some embodiments described herein include some features but not others included in other embodiments, combinations of features of different embodiments are meant to be within the scope of the invention and form different embodiments. For example, in the following claims, any of the claimed embodiments can be used in any combination.
Various component embodiments of the invention may be implemented in hardware, or in software modules running on one or more processors, or in a combination thereof. Those skilled in the art will appreciate that some or all of the functionality of some or all of the components in a browser client device according to embodiments of the present invention may be implemented in practice using a microprocessor or Digital Signal Processor (DSP). The present invention can also be implemented as an apparatus or device program (e.g., a computer program and a computer program product) for performing a portion or all of the methods described herein. Such a program embodying the present invention may be stored on a computer readable medium, or may have the form of one or more signals. Such signals may be downloaded from an internet website, provided on a carrier signal, or provided in any other form.
It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word "comprising" does not exclude the presence of elements or steps not listed in a claim. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. The invention may be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In the unit claims enumerating several means, several of these means may be embodied by one and the same item of hardware. The use of the words first, second, third, etc. do not denote any order. These words may be interpreted as names.

Claims (8)

1. A method of dynamic compilation, the method comprising:
acquiring profile analysis data corresponding to a hot spot method; the hot spot method is a group of continuous virtual machine instruction sequences;
correcting the stain data in the profile analysis data to generate target profile analysis data;
compiling the hot spot method into a local code according to the target profile analysis data;
wherein the hotspot method comprises at least one call point; the profile analysis data comprises each calling point and corresponding calling times;
correcting the stain data in the profile analysis data to generate target profile analysis data, wherein the method comprises the following steps of:
acquiring data with zero calling times corresponding to calling points in the profile analysis data;
determining stain data from the data with zero calling times, correcting the stain data, and generating target profile analysis data;
correcting the stain data to generate target profile analysis data, wherein the method comprises the following steps of:
determining a first node set called by the hot spot method based on a program control flow diagram corresponding to the pre-constructed hot spot method; each call point included in the hot spot method has a corresponding node in the program control flow graph, and the first node set at least includes one node;
Traversing each first node in the first node set in a circulating way according to a first preset rule, determining a first node with zero calling times, and respectively determining a second node set which is necessary to pass when each first node is called according to a program control flow diagram corresponding to the pre-constructed hot spot method; each node in the second node set belongs to a first node set, and the determined calling times corresponding to the first node are corrected until the determined calling times corresponding to the first node are not changed any more;
and determining the corrected calling times corresponding to each first node as target profile analysis data.
2. The method of claim 1, wherein each first node in the first node set is circularly traversed according to a first preset rule, a first node with zero calling times is determined, and a second node set which is necessary for each first node to be called is respectively determined according to a program control flow diagram corresponding to the pre-constructed hot spot method; each node in the second node set belongs to a first node set, and the step of correcting the determined calling times corresponding to the first node comprises the following steps:
When judging that the calling times corresponding to any one first node in the profile analysis data are zero, if the any one first node meets the preset condition, taking the any one first node as the determined first node, and keeping the calling times corresponding to the determined first node unchanged; the preset condition is that when the calling number corresponding to any one first node is zero and the calling number corresponding to another first node is used as a second node of the other first node, the calling number corresponding to the other first node is not zero;
when judging that the calling times corresponding to any one first node in the profile analysis data are not zero, traversing each second node in a second node set which is necessary to pass through when any one first node is called according to a second preset rule, and correcting the calling times corresponding to each second node respectively;
and correcting the determined calling times corresponding to the first node according to the corrected calling times corresponding to all the second nodes.
3. The method according to claim 2, wherein traversing each second node in the second node set that is necessary for the any first node to be invoked according to a second preset rule, and correcting the number of invocations corresponding to each second node, respectively, includes:
For each second node in the second set of nodes, performing the following:
judging whether the calling times corresponding to the second node in the profile analysis data are zero or not;
if yes, correcting the calling times corresponding to the second node to be a preset value; wherein the preset value is a non-zero value;
if not, keeping the calling times corresponding to the second node unchanged.
4. A dynamic compiling apparatus, the apparatus comprising:
the acquisition module is used for acquiring profile analysis data corresponding to the hot spot method; the hot spot method is a group of continuous virtual machine instruction sequences;
the correction module is used for correcting the stain data in the profile analysis data to generate target profile analysis data; the compiling module is used for compiling the hot spot method into a local code according to the target profile analysis data;
wherein the correction module comprises:
the acquisition sub-module is used for acquiring data with zero calling times corresponding to calling points in the profile analysis data, wherein the hot spot method comprises at least one calling point; the profile analysis data comprises each calling point and corresponding calling times;
The correcting sub-module is used for determining stain data from the data with zero calling times, correcting the stain data and generating target profile analysis data;
the correction submodule includes:
the first determining unit is used for determining a first node set called by the hot spot method based on a program control flow diagram corresponding to the pre-constructed hot spot method; each call point included in the hot spot method has a corresponding node in the program control flow graph, and the first node set at least includes one node;
the traversing unit is used for circularly traversing each first node in the first node set according to a first preset rule, determining a first node with zero calling times, and respectively determining a second node set which is necessary to pass through when each first node is called according to a program control flow diagram corresponding to the pre-constructed hot spot method; each node in the second node set belongs to a first node set, and the determined calling times corresponding to the first node are corrected until the determined calling times corresponding to the first node are not changed any more;
And the second determining unit is used for determining the corrected calling times corresponding to each first node as target profile analysis data.
5. The apparatus of claim 4, wherein the traversing unit is specifically configured to:
when judging that the calling times corresponding to any one first node in the profile analysis data are zero, if the any one first node meets the preset condition, taking the any one first node as the determined first node, and keeping the calling times corresponding to the determined first node unchanged; the preset condition is that when the calling number corresponding to any one first node is zero and the calling number corresponding to another first node is used as a second node of the other first node, the calling number corresponding to the other first node is not zero;
when judging that the calling times corresponding to any one first node in the profile analysis data are not zero, traversing each second node in a second node set which is necessary to pass through when any one first node is called according to a second preset rule, and correcting the calling times corresponding to each second node respectively;
and correcting the determined calling times corresponding to the first node according to the corrected calling times corresponding to all the second nodes.
6. The apparatus of claim 5, wherein the traversing unit traverses each second node in the second node set that is necessary for the any first node to be invoked according to a second preset rule, and is specifically configured to:
for each second node in the second set of nodes, performing the following:
judging whether the calling times corresponding to the second node in the profile analysis data are zero or not;
if yes, correcting the calling times corresponding to the second node to be a preset value; wherein the preset value is a non-zero value; if not, keeping the calling times corresponding to the second node unchanged.
7. An electronic device comprising a memory and one or more programs, wherein the one or more programs are stored in the memory and configured to perform the dynamic compilation method according to one or more of claims 1-3 by one or more processors.
8. A readable storage medium, characterized in that instructions in the readable storage medium, when executed by a processor of an electronic device, enable the electronic device to perform the dynamic compilation method according to one or more of claims 1-3.
CN201810847490.7A 2018-07-27 2018-07-27 Dynamic compiling method and device, readable storage medium and electronic equipment Active CN110764771B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810847490.7A CN110764771B (en) 2018-07-27 2018-07-27 Dynamic compiling method and device, readable storage medium and electronic equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810847490.7A CN110764771B (en) 2018-07-27 2018-07-27 Dynamic compiling method and device, readable storage medium and electronic equipment

Publications (2)

Publication Number Publication Date
CN110764771A CN110764771A (en) 2020-02-07
CN110764771B true CN110764771B (en) 2024-04-05

Family

ID=69327832

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810847490.7A Active CN110764771B (en) 2018-07-27 2018-07-27 Dynamic compiling method and device, readable storage medium and electronic equipment

Country Status (1)

Country Link
CN (1) CN110764771B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114416106B (en) * 2022-03-31 2022-08-02 云账户技术(天津)有限公司 Method, system, electronic device and storage medium for updating compiling count value

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6530075B1 (en) * 1998-12-03 2003-03-04 International Business Machines Corporation JIT/compiler Java language extensions to enable field performance and serviceability
CN101510115A (en) * 2009-03-26 2009-08-19 浙江大学 Method for controlling processor frequency when program operation by using dynamic compiler
CN103473168A (en) * 2013-09-12 2013-12-25 中国科学院声学研究所 Statistical method for hotspot program
CN105589729A (en) * 2015-12-28 2016-05-18 北京锐安科技有限公司 Dynamic compiling method and device based on embedded virtual machine
CN106503560A (en) * 2016-11-23 2017-03-15 中国人民解放军信息工程大学 A kind of sensitive information tracking and system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6530075B1 (en) * 1998-12-03 2003-03-04 International Business Machines Corporation JIT/compiler Java language extensions to enable field performance and serviceability
CN101510115A (en) * 2009-03-26 2009-08-19 浙江大学 Method for controlling processor frequency when program operation by using dynamic compiler
CN103473168A (en) * 2013-09-12 2013-12-25 中国科学院声学研究所 Statistical method for hotspot program
CN105589729A (en) * 2015-12-28 2016-05-18 北京锐安科技有限公司 Dynamic compiling method and device based on embedded virtual machine
CN106503560A (en) * 2016-11-23 2017-03-15 中国人民解放军信息工程大学 A kind of sensitive information tracking and system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于蒙特卡罗方法的内核代码热点动态检测技术研究;杨宁;卢显良;;计算机科学(第12期);第265-267页 *

Also Published As

Publication number Publication date
CN110764771A (en) 2020-02-07

Similar Documents

Publication Publication Date Title
CN111447239B (en) Video stream playing control method, device and storage medium
CN110609689A (en) Application installation and operation method and device
CN113934913A (en) Data capture method and device, storage medium and electronic equipment
CN110888756A (en) Diagnostic log generation method and device
CN110764771B (en) Dynamic compiling method and device, readable storage medium and electronic equipment
KR20180129623A (en) Apparatus for statically analyzing assembly code including assoxiated multi files
CN110795354A (en) Information processing method, device and storage medium
CN108536514B (en) Hot spot method identification method and device
CN112286782A (en) Control shielding detection method, software detection method, device and medium
CN116881171B (en) Seed use case processing method, device, equipment and storage medium in fuzzy test
CN113064739A (en) Inter-thread communication method and device, electronic equipment and storage medium
CN110851370A (en) Program testing method and device, and storage medium
US10242315B2 (en) Finite state machine forming
CN110990137B (en) Application program function module scheduling method, scheduling information processing method and device
CN109918132B (en) Instruction installation method and device, electronic equipment and storage medium
CN116048757A (en) Task processing method, device, electronic equipment and storage medium
CN112631695B (en) Data verification method and device, electronic equipment and storage medium
CN114385487A (en) Execution time processing method and device and storage medium
CN112445484B (en) Register processing method and device, electronic equipment and storage medium
CN109408063B (en) Instruction pile inserting method and device based on virtual machine
CN113268325A (en) Method, device and storage medium for scheduling task
CN114860242A (en) Compiling method, compiling device and storage medium
CN112445483B (en) Instruction generation method and device, electronic equipment and storage medium
CN112468952B (en) Positioning method, positioning device, storage medium and electronic equipment
CN114385306A (en) Instruction sequence atomicity modification method and device and readable storage 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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Applicant after: Loongson Zhongke Technology Co.,Ltd.

Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Applicant before: LOONGSON TECHNOLOGY Corp.,Ltd.

GR01 Patent grant
GR01 Patent grant