CN111240761A - Configuration file loading method and device - Google Patents

Configuration file loading method and device Download PDF

Info

Publication number
CN111240761A
CN111240761A CN202010019456.8A CN202010019456A CN111240761A CN 111240761 A CN111240761 A CN 111240761A CN 202010019456 A CN202010019456 A CN 202010019456A CN 111240761 A CN111240761 A CN 111240761A
Authority
CN
China
Prior art keywords
data
binary
memory
class
specified
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
CN202010019456.8A
Other languages
Chinese (zh)
Other versions
CN111240761B (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.)
Zhengzhou Apas Digital Cloud Information Technology Co Ltd
Original Assignee
Zhengzhou Apas Digital Cloud Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhengzhou Apas Digital Cloud Information Technology Co Ltd filed Critical Zhengzhou Apas Digital Cloud Information Technology Co Ltd
Priority to CN202010019456.8A priority Critical patent/CN111240761B/en
Publication of CN111240761A publication Critical patent/CN111240761A/en
Application granted granted Critical
Publication of CN111240761B publication Critical patent/CN111240761B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

The application discloses a method and a device for loading a configuration file, wherein the method comprises the following steps: editing according to a configuration file of a target application to obtain a plurality of data tables, wherein the plurality of data tables comprise specified column names and a plurality of data types, and the plurality of data types comprise at least one of the following data types: the data type generating method comprises the following steps of (1) generating a basic data type, a user-defined data type obtained based on IDL user definition and a complex data type generated by combining and nesting the basic data type and the user-defined data type; generating a class of a specified language according to the specified column name and a plurality of data types; generating a plurality of binary files according to data of different data types in the plurality of data tables, wherein the binary files comprise binary structured numerical data; when the target application is started, the configuration file is loaded according to the class of the specified language and the plurality of binary files. When the configuration file is loaded, the loading duration of the configuration file can be reduced, and the application can be started quickly.

Description

Configuration file loading method and device
Technical Field
The present application relates to the field of computer technologies, and in particular, to a method and an apparatus for loading a configuration file.
Background
With the development of scientific technology, various applications, such as game applications, shopping applications, chat applications, etc., have appeared, and these applications usually have corresponding configuration files, and when starting these applications, the corresponding configuration files are often required to be loaded.
Generally, a configuration file usually includes complex data structures, and when the application is started and the configuration file of the application is loaded, the complex data structures need to be parsed, and a parsing process of the complex data structures usually takes a long time, which results in a long loading time of the configuration file, and further results in a long starting time of the application.
Disclosure of Invention
The embodiment of the application provides a configuration file loading method and device, which are used for solving the problem of long loading time when an application configuration file is loaded.
In order to solve the technical problem, the present application is implemented as follows:
the embodiment of the application provides a method for loading a configuration file, which comprises the following steps:
editing according to a configuration file of a target application to obtain a plurality of data tables, wherein the data tables comprise specified column names and a plurality of data types, and the data types comprise at least one of the following data types: the data processing method comprises the following steps of (1) obtaining a basic data type, a user-defined data type obtained based on IDL user definition and a complex data type generated by combining and nesting the basic data type and the user-defined data type;
generating a class of a specified language according to the specified column name and a plurality of data types;
generating a plurality of binary files according to data of different data types included in the plurality of data tables, wherein the binary files include binary structured numerical data;
and when the target application is started, loading the configuration file according to the class of the specified language and the plurality of binary files.
An embodiment of the present application provides a configuration file loading apparatus, including:
the editing unit is used for editing a plurality of data tables according to the configuration file of the target application, wherein the data tables comprise specified column names and a plurality of data types, and the data types comprise at least one of the following data types: the data processing method comprises the following steps of (1) obtaining a basic data type, a user-defined data type obtained based on IDL user definition and a complex data type generated by combining and nesting the basic data type and the user-defined data type;
a first generating unit that generates a class of a specified language based on the specified column name and a plurality of data types;
the second generation unit is used for generating a plurality of binary files according to data of different data types included in the data tables, and the binary files comprise binary structured numerical data;
and the loading unit loads the configuration file according to the class of the specified language and the plurality of binary files when the target application is started.
An embodiment of the present application provides an electronic device, including:
a processor; and
a memory arranged to store computer executable instructions that, when executed, cause the processor to:
editing according to a configuration file of a target application to obtain a plurality of data tables, wherein the data tables comprise specified column names and a plurality of data types, and the data types comprise at least one of the following data types: the data processing method comprises the following steps of (1) obtaining a basic data type, a user-defined data type obtained based on IDL user definition and a complex data type generated by combining and nesting the basic data type and the user-defined data type;
generating a class of a specified language according to the specified column name and a plurality of data types;
generating a plurality of binary files according to data of different data types included in the plurality of data tables, wherein the binary files include binary structured numerical data;
and when the target application is started, loading the configuration file according to the class of the specified language and the plurality of binary files.
Embodiments of the present application provide a computer-readable storage medium storing one or more programs that, when executed by an electronic device including a plurality of application programs, cause the electronic device to:
editing according to a configuration file of a target application to obtain a plurality of data tables, wherein the data tables comprise specified column names and a plurality of data types, and the data types comprise at least one of the following data types: the data processing method comprises the following steps of (1) obtaining a basic data type, a user-defined data type obtained based on IDL user definition and a complex data type generated by combining and nesting the basic data type and the user-defined data type;
generating a class of a specified language according to the specified column name and a plurality of data types;
generating a plurality of binary files according to data of different data types included in the plurality of data tables, wherein the binary files include binary structured numerical data;
and when the target application is started, loading the configuration file according to the class of the specified language and the plurality of binary files.
The embodiment of the application adopts at least one technical scheme which can achieve the following beneficial effects:
according to the embodiment of the application, before the configuration file of the application is loaded, the configuration file can be pre-edited, and the complex data structures, such as character strings and the like, in the configuration file are converted into the specified data types during pre-editing, and further converted into binary structured numerical data which are easy to load, so that the complex data structures in the configuration file can be prevented from being deserialized during loading of the configuration file, and the loading time of the configuration file is shortened; in addition, when the configuration file is loaded, the configuration file can be loaded based on the class of the specified language and the plurality of binary files, so that the memory can be directly mapped to the class object reference corresponding to the class of the specified language, the data corresponding to the class object can be directly obtained in a mode of accessing the memory where the data is located through the memory offset corresponding to the class object, the analyzer does not need to be initialized in the whole process, and the object does not need to be subjected to deserialization analysis, so that the time for loading the configuration of the application can be saved, the speed for loading the configuration can be increased, and the application can be quickly started.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings needed to be used in the description of the embodiments or the prior art will be briefly introduced below, it is obvious that the drawings in the following description are only some embodiments described in the present application, and for those skilled in the art, other drawings can be obtained according to the drawings without any creative effort.
FIG. 1 is a flowchart illustrating a method for loading configuration files according to an embodiment of the present application;
FIG. 2 is a flowchart illustrating a method for loading configuration files according to an embodiment of the present application;
FIG. 3 is a flowchart illustrating a method for loading configuration files according to an embodiment of the present application;
fig. 4 is a schematic structural diagram of an electronic device according to an embodiment of the present disclosure;
fig. 5 is a schematic structural diagram of a configuration file loading apparatus according to an embodiment of the present application.
Detailed Description
Generally, the configuration file of the application includes complex data structures, such as character strings, and when the application is started and the configuration file is loaded, the complex data structures such as the character strings and the like often need to be deserialized to analyze the complex data structures such as the character strings and the like into numerical types, so as to load the configuration file and start the application.
However, the deserialization process usually takes a long time, which results in a slow loading speed of the configuration file, especially for large game applications, because the configuration file of these applications has more data, it takes a longer time to deserialize, and the loading speed of the configuration file is also slower. In addition, when deserializing is performed, a large amount of memory space is occupied, so that memory consumption is large, and correspondingly, more memory garbage is generated.
In order to solve the above technical problem, an embodiment of the present application provides a method and an apparatus for loading a configuration file, where the method includes: editing according to a configuration file of a target application to obtain a plurality of data tables, wherein the data tables comprise specified column names and a plurality of data types, and the data types comprise at least one of the following data types: the data processing method comprises the following steps of (1) obtaining a basic data type, a user-defined data type obtained based on IDL user definition and a complex data type generated by combining and nesting the basic data type and the user-defined data type; generating a class of a specified language according to the specified column name and a plurality of data types; generating a plurality of binary files according to data of different data types included in the plurality of data tables, wherein the binary files include binary structured numerical data; and when the target application is started, loading the configuration file according to the class of the specified language and the plurality of binary files.
According to the embodiment of the application, before the configuration file of the application is loaded, the configuration file can be pre-edited, and the complex data structures, such as character strings and the like, in the configuration file are converted into the specified data types during pre-editing, and further converted into binary structured numerical data which are easy to load, so that the complex data structures in the configuration file can be prevented from being deserialized during loading of the configuration file, and the loading time of the configuration file is shortened; in addition, when the configuration file is loaded, the configuration file can be loaded based on the class of the specified language and the plurality of binary files, so that the memory can be directly mapped to the class object reference corresponding to the class of the specified language, the data corresponding to the class object can be directly obtained in a mode of accessing the memory where the data is located through the memory offset corresponding to the class object, the analyzer does not need to be initialized in the whole process, and the object does not need to be subjected to deserialization analysis, so that the time for loading the configuration of the application can be saved, the speed for loading the configuration can be increased, and the application can be quickly started.
The technical solutions of the present application will be described clearly and completely below with reference to the specific embodiments of the present application and the accompanying drawings. It should be apparent that the described embodiments are only some of the embodiments of the present application, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
It should be noted that the technical solution provided in the embodiment of the present application may be implemented by flitbuffers, where flitbuffers are an open-source, cross-platform, efficient, and serialized tool library that provides a C + +/Java interface, and may generate an analytic class and binary structured numerical data of a corresponding language through a non-self-describing protocol, and the binary structured numerical data may directly map a loaded memory layout, and an analyzer and a deserialized analytic object do not need to be initialized, so that a configuration loading time may be saved and memory garbage may not be generated in a loading process.
The technical solutions provided by the embodiments of the present application are described in detail below with reference to the accompanying drawings.
Fig. 1 is a schematic flowchart of a method for loading a configuration file according to an embodiment of the present application. The method is as follows.
S102: and editing according to a configuration file of a target application to obtain a plurality of data tables, wherein the plurality of data tables comprise specified column names and a plurality of data types, and the plurality of data types comprise basic data types, custom data types obtained based on IDL (identity independent language) customization and complex data types generated by combining and nesting the basic data types and the custom data types.
Before loading the configuration file of the target application, the configuration file can be pre-edited, and when the configuration file is pre-edited, a plurality of data tables can be obtained according to data editing in the configuration file.
In this embodiment, before the plurality of data tables are obtained by editing, the data type may be customized by using the IDL, so as to obtain a customized data type. The custom data type can be one type or multiple types.
After the custom data type is obtained, the complex data type can be generated by combining and nesting the custom data type and the basic data types (byte, short, int, long, float, double, boroean and char). The complex data type can be an array, a nest or the like. Thus, when the data table is edited subsequently, the corresponding complex data can be configured based on the complex data structure.
After the basic data type, the custom data type and the complex data type are obtained, a plurality of data tables can be edited according to the configuration file of the target application.
When a plurality of data tables are edited, column names and data types in the data tables can be specified for each data table, and data in the configuration file is converted into data corresponding to the column names and the data types in the data tables, wherein the data types can include at least one of basic data types, custom data types and complex data types.
When data in the configuration file is converted into data in the data tables, that is, when data in a plurality of data tables is configured, complicated data such as character strings are prevented from being configured as much as possible, so that the data are prevented from being deserialized subsequently. If the data of the complex data structure needs to be configured, the complex data can be spliced by using the custom separators in the data table, namely the data in the data table uses numerical value types instead of character string data as much as possible.
Optionally, the multiple data tables obtained by editing in this embodiment may be excel tables. For ease of understanding, see table 1.
TABLE 1
A B C D E
1 Role table
2 id Name Level Position Sub_position
3 short string short Fpos [Fpos]
4 ID Name(s) Grade Position of Sub-position
5 1 Hillary Jr. 20 10,10,10 5,5,5,7,7,7,9,9,9
6 2 Yulia 30 15,10,15 11,11,11,13,13,13
7 3 Sam 40 20,15,15 1,3,5,4,8,7,12,5,8
Table 1 is an excel table obtained by editing a configuration file based on a certain game application, and as can be seen from table 1, the excel table is a role table, and the table includes specified column names id, Name, Level, Position and Sub _ Position, specified data types short, string, short, Fpos and [ Fpos ], and data of a plurality of roles in the game corresponding to the specified column names and data types. The data type Fpos of the column D is a custom data type, and the data type [ Fpos ] of the column E is a data type combined by the custom data types.
S104: and generating a class of a specified language according to the specified column name and the plurality of data types.
After the plurality of data tables are edited, a class of a specified language may be generated based on specified column names and data types included in the plurality of data tables. Where a class may be understood as a parse type, the specified language may be understood as a language recognizable by the system for loading the configuration file.
For example, the system may recognize the C + + language, and then the specified language may be the C + + language, and accordingly, a class of the C + + language may be generated.
When generating a class of a specified language, taking one of the data tables as an example, the method may specifically include:
first, the column names and data types included in the data table are converted into the data structure described by the IDL.
The column names and data types in the data table can be derived based on the conversion procedure, and the data structure described by the IDL is obtained.
Secondly, compiling the data structure described by the IDL by using a specified compiler to generate a class of a specified language.
The specified compiler may preferably be a modified compiler of flatbuffers, and the class of the specified language may be generated after the data structure described by the IDL is compiled based on the modified compiler of flatbuffers.
In this embodiment, when the class of the specified language is generated, an offset corresponding to the class of the specified language may also be obtained, where the offset may be used to read data of a class object from a memory, and the class object is a class object generated by the class of the specified language.
After the class of the designated language corresponding to one data table is generated by the above method, the class of the designated language corresponding to the other data table may be generated based on the same method.
S106: and generating a plurality of binary files according to the data of different data types in the data tables, wherein the binary files comprise binary structured numerical data.
After the plurality of data tables are obtained through editing, the data in the plurality of data tables can be converted into binary structured numerical data, and then a plurality of binary files are obtained. Wherein, a data table may correspond to a binary file.
Taking one of the data volumes as an example, when generating the binary file corresponding to the data table, the method may include:
firstly, data in a data table is converted into data in a specified format
The data in the specified format may preferably be data in a JSON (JavaScript Object Notation) format, where the JSON format is a lightweight data exchange format, and the data is stored and represented in a text format completely independent of a programming language, so that the data is easy to read and write by a human, and is also easy to parse and generate by a machine, and the network transmission efficiency is effectively improved.
Alternatively, the data in the specified format may be data in other formats as long as binary structured numerical data can be obtained by subsequent compiling using a specified compiler.
And secondly, compiling the data in the specified format by using a specified compiling program to obtain binary structured numerical data.
The specified compiler may be the modified compiler of the flitbuffers, and the binary structured numerical data may be obtained by compiling the data in the specified format with the modified compiler of the flitbuffers.
And finally, generating a binary file corresponding to the data table according to the binary structured numerical data.
After one binary file corresponding to one data table is generated based on the method, binary files corresponding to other data tables can be generated based on the same method, and finally a plurality of binary files corresponding to a plurality of data tables can be obtained.
S108: and when the target application is started, loading the configuration file according to the class of the specified language and the plurality of binary files.
In S108, after the configuration of the target application is pre-edited to obtain a plurality of data tables, and further obtain a class of the specified language and a plurality of binary files containing binary structured numerical data, when the target application is started, the configuration file of the target application may be loaded according to the class of the specified language and the plurality of binary files.
When loading the configuration file of the target application according to the class of the specified language and the plurality of binary files, the specific steps may include:
first, a class object corresponding to a class of a specified language is generated from the class of the specified language.
The class object generated in this step is a null object, and the attribute of the class object includes a memory offset, where the memory offset may be an offset corresponding to the class of the specified language obtained when the class of the specified language is generated in S104.
Secondly, loading a plurality of binary files into the memory to obtain a starting address corresponding to the memory offset.
When the binary files are loaded into the memory, the binary structured numerical data in the binary files can be loaded into the memory in sequence.
After binary structured numerical data in a plurality of binary files are loaded into the memory, the initial addresses of the binary structured numerical data in the memory can be obtained.
And thirdly, obtaining the access address of the target data corresponding to the class object in the memory according to the memory offset and the initial address.
After the memory offset of the class object and the initial address of the binary structured numerical data in the memory are known, the initial address and the memory offset can be combined to obtain an access address, wherein the access address is the address of the target data corresponding to the class object in the memory.
And finally, reading the target data corresponding to the class object from the memory according to the access address.
After the access address is obtained, the target data corresponding to the class object can be directly read from the memory according to the access address.
And circularly executing the loading process of the configuration file until the binary structured data of the plurality of binary files in the memory are completely read, and at the moment, realizing the configuration loading of the target application.
In the loading process of the configuration file, because the configuration file can be loaded based on the flitbuffers, zero memory copy is realized without decoding when the binary file is loaded and the class object is generated, so that a large amount of memory is prevented from being occupied in the whole loading process, and memory garbage is avoided.
In addition, after the binary file is loaded into the memory, the memory can be directly mapped to the class object (empty object) for reference, and the data corresponding to the class object can be directly obtained in a mode of accessing the memory where the data is located through the memory offset corresponding to the class object, so that the parser does not need to be initialized in the whole process, the deserialization does not need to be carried out, the time for configuration loading of the application can be saved, the speed for configuration loading is increased, and the application can be quickly started.
It should be noted that, in the above configuration loading process, in consideration of that it takes a long time to load a plurality of binary files into the memory when the number of the binary files is large or the data amount is large, when the binary files are loaded into the memory, only a part of the binary files may be loaded into the memory, and the other part of the binary files is not loaded into the memory, where data in the part of the binary files may be data that is needed when the application is started, and data in the other part of the binary files may be data that is not needed when the application is started. In this way, when the configuration of the application is loaded, a part of the binary file can be loaded into the memory, so that the configuration loading time of the application can be further saved. The specific implementation is as follows.
First, before loading the binary files into the memory, it may be determined whether the number of the binary files is not less than a first threshold, or whether the amount of data included in the binary files is not less than a second threshold. Both the first threshold and the second threshold can be determined according to actual conditions. And is not particularly limited herein.
Secondly, if the number of the binary files is not less than the first threshold value, or the data amount included in the binary files is not less than the second threshold value, the binary files can be merged to obtain a merged binary file.
When merging multiple binary files, the offset of each binary file in the merged binary file may also be recorded, and the offset may characterize the position of the data in each binary file in the data of the merged binary file.
Alternatively, the record file may be used to record the corresponding relationship between the offsets of the plurality of binary files and the plurality of binary files in the merged binary file, so that the offset corresponding to each binary file may be determined based on the record file in the following.
And finally, loading the target binary file in the combined binary file into the memory.
The data in the target binary file is data needed by starting the target application, wherein the number of the target binary file can be one or more.
In this embodiment, when loading the target binary file into the memory, the method may specifically include:
firstly, opening the merged binary file and acquiring a file handle.
It should be noted that opening the merged binary file herein is only to open the binary file, and does not mean loading the merged binary file into the memory. When the merged binary file is opened, a file handle can be obtained.
Secondly, when the target binary file is loaded, the target offset of the target binary file in the merged binary file is determined.
Specifically, after the merged binary file is opened, when the target binary file needs to be loaded, an offset of the target binary file in the merged binary file may be obtained, where for convenience of distinction, the offset may be represented by a target offset. The target offset may be recorded when multiple binary files are merged.
And finally, offsetting the file handle to a target offset, and loading the target binary file into the memory.
After the target offset is obtained, the file handle can be offset to the target offset, so that data in the target binary file can be obtained from the merged binary file according to the target offset, and the obtained data is loaded into the memory.
After the target binary file is loaded into the memory, the initial address corresponding to the memory offset corresponding to the generated class object can be obtained, the access address of the target data corresponding to the class object in the memory is obtained according to the memory offset and the initial address, and the target data can be read from the memory according to the access address, so that the configuration loading is realized. Specific reference may be made to specific implementation of the corresponding step in S108, and description is not repeated here.
In addition, because the data loaded to the memory can be reduced, the memory space occupied in the configuration loading process can be reduced.
Optionally, in the case of loading the target binary file into the memory, after starting the target application based on the target binary file, when the target application is run, the unloaded binary file in the merged binary file may also be loaded into the memory as needed. In this way, segmented dynamic loading of multiple binary files may be achieved.
For the convenience of understanding the technical solutions provided in the present application, reference may be made to fig. 2 and 3.
Fig. 2 is a flowchart illustrating a method for loading a configuration file according to an embodiment of the present application. The embodiment shown in fig. 2 is described by taking an example that the number of the binary files is smaller than the first threshold, and the data amount of the binary files is smaller than the second threshold, and specifically may include the following steps:
s201: and customizing the data type based on the IDL to obtain the customized data type.
S202: and editing according to the configuration file of the target application to obtain a plurality of data tables.
Wherein, the plurality of data tables comprise specified column names and a plurality of data types, and the plurality of data types may comprise at least one of the following: the data type comprises a basic data type, a custom data type and a complex data type which is generated by nesting a combination of the basic data type and the custom data type.
S203: the column names and data types included in the data table are converted into the data structure described by the IDL, and the data in the data table is converted into the data in the specified format.
The step can be realized by a conversion program, and the data in the specified format can be preferably data in a JSON format.
S204: and compiling the data structure described by the IDL and the data in the specified format by using a specified compiling program to obtain the class and binary structured numerical data of the specified language.
Specifically, the data structure described by the IDL may be compiled by using the modified fltfuffers to obtain a class of a specified language, and the data in the specified format may be compiled by using the modified fltfuffers to obtain binary structured numerical data.
S205: and generating a plurality of binary files according to the binary structured data.
S206: and generating a class object corresponding to the class of the specified language according to the class of the specified language.
The generated class object is a null object, the attribute of the class object includes a memory offset, and the memory offset is specifically a memory offset obtained when the class of the specified language is generated.
S207: and sequentially loading a plurality of binary files into the memory to obtain a starting address corresponding to the memory offset of the class object.
S208: and obtaining the access address of the target data corresponding to the class object in the memory according to the initial address and the memory offset of the class object.
S209: and reading the target data corresponding to the class object from the memory according to the access address.
And circularly executing the steps S207 to S209 until the binary structured data of the plurality of binary files in the memory are completely read, and at this time, the configuration loading of the target application can be realized.
Specific implementation of each step in the embodiment shown in fig. 2 can refer to specific implementation of a corresponding step in the embodiment shown in fig. 1, and description is not repeated here.
Fig. 3 is a flowchart illustrating a method for loading a configuration file according to an embodiment of the present application. The embodiment shown in fig. 3 is exemplified by that the number of the plurality of binary files is not less than the first threshold, or the data amount of the plurality of binary files is not less than the second threshold, and specifically, the method may include the following steps:
s301: and customizing the data type based on the IDL to obtain the customized data type.
S302: and editing according to the configuration file of the target application to obtain a plurality of data tables.
S303: the column names and data types included in the data table are converted into the data structure described by the IDL, and the data in the data table is converted into the data in the specified format.
S304: and compiling the data structure described by the IDL and the data in the specified format by using a specified compiling program to obtain the class and binary structured numerical data of the specified language.
S305: and generating a plurality of binary files according to the binary structured data.
Specific implementation of S301 to S205 can be referred to S201 to S205, and description thereof is not repeated here.
S306: and combining the plurality of binary files to obtain a combined binary file.
When merging multiple binary files, the offset of the multiple binary files in the merged binary file may be recorded.
S307: and generating a class object corresponding to the class of the specified language according to the class of the specified language.
The generated class object is a null object, the attribute of the class object includes a memory offset, and the memory offset is specifically a memory offset obtained when the class of the specified language is generated.
S308: and opening the merged binary file to obtain a file handle.
S309: and when the target binary file is loaded, acquiring the target offset of the target binary file in the merged binary file.
The target binary file is one or more files in the plurality of binary files, and the data in the target binary file is data required by the target application when the target application is configured and loaded.
S310: and offsetting the file handle to a target offset, and loading the target binary file into the memory to obtain a starting address corresponding to the memory offset of the class object.
S311: and obtaining the access address of the target data corresponding to the class object in the memory according to the initial address and the memory offset of the class object.
S312: and reading the target data corresponding to the class object from the memory according to the access address.
And circularly executing the steps S309 to S311 until the binary structured data of the target binary file is completely read from the memory, and at this time, the configuration loading of the target application can be realized.
S313: and after the target application is started, loading the unloaded binary file in the combined binary file into the memory.
By loading the unloaded binary file data in the running process of the target application, the segmented dynamic loading of a plurality of binary files can be realized.
Specific implementation of each step in the embodiment shown in fig. 3 can refer to specific implementation of a corresponding step in the embodiment shown in fig. 1, and description is not repeated here.
According to the embodiment of the application, before the configuration file of the application is loaded, the configuration file can be pre-edited, and the complex data structures, such as character strings and the like, in the configuration file are converted into the specified data types during pre-editing, and further converted into binary structured numerical data which are easy to load, so that the complex data structures in the configuration file can be prevented from being deserialized during loading of the configuration file, and the loading time of the configuration file is shortened; when the configuration file is loaded, the configuration file can be loaded based on the class of the specified language and the plurality of binary files, so that the memory can be directly mapped to the class object reference corresponding to the class of the specified language, the data corresponding to the class object can be directly obtained in a mode of accessing the memory where the data is located through the memory offset corresponding to the class object, and the parser does not need to be initialized in the whole process, and the deserialization parsing object does not need to be carried out, so that the time for loading the configuration of the application can be saved, the speed for loading the configuration can be increased, and the application can be quickly started.
In addition, under the condition that the number of binary files to be loaded is large or the data volume is large, a plurality of binary files can be loaded in a segmented dynamic loading mode, so that the time for configuration loading can be saved on one hand, and the occupied space of a memory in the configuration loading process can be reduced on the other hand.
The foregoing description has been directed to specific embodiments of this disclosure. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims may be performed in a different order than in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing may also be possible or may be advantageous.
Fig. 4 is a schematic structural diagram of an electronic device according to an embodiment of the present application. Referring to fig. 4, at a hardware level, the electronic device includes a processor, and optionally further includes an internal bus, a network interface, and a memory. The Memory may include a Memory, such as a Random-Access Memory (RAM), and may further include a non-volatile Memory, such as at least 1 disk Memory. Of course, the electronic device may also include hardware required for other services.
The processor, the network interface, and the memory may be connected to each other via an internal bus, which may be an ISA (Industry Standard Architecture) bus, a PCI (peripheral component Interconnect) bus, an EISA (Extended Industry Standard Architecture) bus, or the like. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, only one double-headed arrow is shown in FIG. 4, but that does not indicate only one bus or one type of bus.
And the memory is used for storing programs. In particular, the program may include program code comprising computer operating instructions. The memory may include both memory and non-volatile storage and provides instructions and data to the processor.
The processor reads the corresponding computer program from the nonvolatile memory into the memory and then runs the computer program to form a loading device of the configuration file on the logic level. The processor is used for executing the program stored in the memory and is specifically used for executing the following operations:
editing according to a configuration file of a target application to obtain a plurality of data tables, wherein the data tables comprise specified column names and a plurality of data types, and the data types comprise at least one of the following data types: the data processing method comprises the following steps of (1) obtaining a basic data type, a user-defined data type obtained based on IDL user definition and a complex data type generated by combining and nesting the basic data type and the user-defined data type;
generating a class of a specified language according to the specified column name and a plurality of data types;
generating a plurality of binary files according to data of different data types included in the plurality of data tables, wherein the binary files include binary structured numerical data;
and when the target application is started, loading the configuration file according to the class of the specified language and the plurality of binary files.
The method executed by the configuration file loading device according to the embodiment shown in fig. 4 of the present application may be applied to a processor, or may be implemented by a processor. The processor may be an integrated circuit chip having signal processing capabilities. In implementation, the steps of the above method may be performed by integrated logic circuits of hardware in a processor or instructions in the form of software. The Processor may be a general-purpose Processor, including a Central Processing Unit (CPU), a Network Processor (NP), and the like; but also Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs) or other Programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The various methods, steps, and logic blocks disclosed in the embodiments of the present application may be implemented or performed. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like. The steps of the method disclosed in connection with the embodiments of the present application may be directly implemented by a hardware decoding processor, or implemented by a combination of hardware and software modules in the decoding processor. The software module may be located in ram, flash memory, rom, prom, or eprom, registers, etc. storage media as is well known in the art. The storage medium is located in a memory, and a processor reads information in the memory and completes the steps of the method in combination with hardware of the processor.
The electronic device may further execute the method shown in fig. 1 to 3, and implement the functions of the configuration file loading apparatus in the embodiments shown in fig. 1 to 3, which are not described herein again in this embodiment of the present application.
Of course, besides the software implementation, the electronic device of the present application does not exclude other implementations, such as a logic device or a combination of software and hardware, and the like, that is, the execution subject of the following processing flow is not limited to each logic unit, and may also be hardware or a logic device.
Embodiments of the present application also propose a computer-readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a portable electronic device comprising a plurality of application programs, enable the portable electronic device to perform the method of the embodiments shown in fig. 1 to 3, and in particular to perform the following operations:
editing according to a configuration file of a target application to obtain a plurality of data tables, wherein the data tables comprise specified column names and a plurality of data types, and the data types comprise at least one of the following data types: the data processing method comprises the following steps of (1) obtaining a basic data type, a user-defined data type obtained based on IDL user definition and a complex data type generated by combining and nesting the basic data type and the user-defined data type;
generating a class of a specified language according to the specified column name and a plurality of data types;
generating a plurality of binary files according to data of different data types included in the plurality of data tables, wherein the binary files include binary structured numerical data;
and when the target application is started, loading the configuration file according to the class of the specified language and the plurality of binary files.
Fig. 5 is a schematic structural diagram of a configuration file loading apparatus according to an embodiment of the present application. The apparatus may specifically include: an editing unit 51, a first generating unit 52, a second generating unit 53, and a loading unit 54, wherein:
the editing unit 51 edits a plurality of data tables according to the configuration file of the target application, where the plurality of data tables include specified column names and a plurality of data types, and the plurality of data types include at least one of the following: the data processing method comprises the following steps of (1) obtaining a basic data type, a user-defined data type obtained based on IDL user definition and a complex data type generated by combining and nesting the basic data type and the user-defined data type;
a first generating unit 52 for generating a class of a specified language based on the specified column name and a plurality of data types;
a second generating unit 53 that generates a plurality of binary files including binary structured numerical data from data of different data types included in the plurality of data tables;
and the loading unit 54 loads the configuration file according to the class of the specified language and the plurality of binary files when the target application is started.
Optionally, the first generating unit 52 generates a class in a specified language according to the specified column name and a plurality of data types, including:
for one of the data tables, the following operations are performed:
converting the column names and the data types included in the data table into a data structure described by IDL;
and compiling the data structure described by the IDL by using a specified compiling program to generate the class of the specified language.
Optionally, the second generating unit 53 generates a plurality of binary files according to the data of different data types included in the plurality of data tables, including:
for one of the data tables, the following operations are performed:
converting the data in the data table into data in a specified format;
compiling the data in the specified format by using a specified compiling program to obtain binary structured numerical data;
and generating a binary file corresponding to the data table according to the binary structured numerical data.
Optionally, the loading unit 54 loads the configuration file according to the class of the specified language and the plurality of binary files, including:
generating a class object corresponding to the class of the specified language according to the class of the specified language, wherein the attribute of the class object comprises a memory offset, and the memory offset is a memory offset obtained when the class of the specified language is generated;
loading the binary files into a memory to obtain a starting address corresponding to the memory offset;
obtaining an access address of the target data corresponding to the class object in the memory according to the memory offset and the initial address;
and reading the target data from the memory according to the access address.
Optionally, the loading unit 54, before loading the binary files into the memory, determines whether the number of the binary files is not less than a first threshold, or whether the amount of data included in the binary files is not less than a second threshold;
if so, merging the binary files to obtain a merged binary file;
the loading unit 54 loads the binary files into the memory, and includes:
and loading a target binary file in the merged binary files into a memory, wherein the target binary file is a partial file in the binary files.
Optionally, the loading unit 54 loads the target binary file in the merged binary file into the memory, including:
opening the merged binary file to obtain a file handle;
when the target binary file is loaded, acquiring a target offset of the target binary file in the merged binary file;
and offsetting the file handle to the target offset, and loading the target binary file into a memory.
Optionally, after the target application is started, when the target application is run, the loading unit 54 loads the unloaded binary file in the merged binary file into the memory.
The configuration file loading device provided in this embodiment of the present application may further execute the method in fig. 1 to 3, and implement the functions of the configuration file recording device in the embodiments shown in fig. 1 to 3, which are not described herein again in this embodiment of the present application.
In short, the above description is only a preferred embodiment of the present application, and is not intended to limit the scope of the present application. Any modification, equivalent replacement, improvement and the like made within the spirit and principle of the present application shall be included in the protection scope of the present application.
The systems, devices, modules or units illustrated in the above embodiments may be implemented by a computer chip or an entity, or by a product with certain functions. One typical implementation device is a computer. In particular, the computer may be, for example, a personal computer, a laptop computer, a cellular telephone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
Computer-readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), Digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device. As defined herein, a computer readable medium does not include a transitory computer readable medium such as a modulated data signal and a carrier wave.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
The embodiments in the present specification are described in a progressive manner, and the same and similar parts among the embodiments are referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, for the system embodiment, since it is substantially similar to the method embodiment, the description is simple, and for the relevant points, reference may be made to the partial description of the method embodiment.

Claims (10)

1. A method for loading a configuration file is characterized by comprising the following steps:
editing according to a configuration file of a target application to obtain a plurality of data tables, wherein the data tables comprise specified column names and a plurality of data types, and the data types comprise at least one of the following data types: the data processing method comprises the following steps of (1) obtaining a basic data type, a user-defined data type obtained based on IDL user definition and a complex data type generated by combining and nesting the basic data type and the user-defined data type;
generating a class of a specified language according to the specified column name and a plurality of data types;
generating a plurality of binary files according to data of different data types included in the plurality of data tables, wherein the binary files include binary structured numerical data;
and when the target application is started, loading the configuration file according to the class of the specified language and the plurality of binary files.
2. The method of claim 1, wherein generating a class in a specified language based on the specified column name and a plurality of data types comprises:
for one of the data tables, the following operations are performed:
converting the column names and the data types included in the data table into a data structure described by IDL;
and compiling the data structure described by the IDL by using a specified compiling program to generate the class of the specified language.
3. The method of claim 1, wherein generating a plurality of binary files from data of different data types included in the plurality of data tables comprises:
for one of the data tables, the following operations are performed:
converting the data in the data table into data in a specified format;
compiling the data in the specified format by using a specified compiling program to obtain binary structured numerical data;
and generating a binary file corresponding to the data table according to the binary structured numerical data.
4. The method of claim 1, wherein loading the configuration file according to the class of the specified language and the plurality of binary files comprises:
generating a class object corresponding to the class of the specified language according to the class of the specified language, wherein the attribute of the class object comprises a memory offset, and the memory offset is a memory offset obtained when the class of the specified language is generated;
loading the binary files into a memory to obtain a starting address corresponding to the memory offset;
obtaining an access address of the target data corresponding to the class object in the memory according to the memory offset and the initial address;
and reading the target data from the memory according to the access address.
5. The method of claim 4, prior to loading the plurality of binary files into memory, further comprising:
judging whether the number of the binary files is not less than a first threshold value or not, or whether the data volume contained in the binary files is not less than a second threshold value or not;
if so, merging the binary files to obtain a merged binary file;
loading the binary files into a memory, including:
and loading a target binary file in the merged binary files into a memory, wherein the target binary file is a partial file in the binary files.
6. The method of claim 5, wherein loading a target binary file in the merged binary file into a memory comprises:
opening the merged binary file to obtain a file handle;
when the target binary file is loaded, acquiring a target offset of the target binary file in the merged binary file;
and offsetting the file handle to the target offset, and loading the target binary file into a memory.
7. The method of claim 5, wherein the method further comprises:
and after the target application is started, loading the unloaded binary file in the merged binary file into a memory when the target application is operated.
8. An apparatus for loading configuration files, comprising:
the editing unit is used for editing a plurality of data tables according to the configuration file of the target application, wherein the data tables comprise specified column names and a plurality of data types, and the data types comprise at least one of the following data types: the data processing method comprises the following steps of (1) obtaining a basic data type, a user-defined data type obtained based on IDL user definition and a complex data type generated by combining and nesting the basic data type and the user-defined data type;
a first generating unit that generates a class of a specified language based on the specified column name and a plurality of data types;
the second generation unit is used for generating a plurality of binary files according to data of different data types included in the data tables, and the binary files comprise binary structured numerical data;
and the loading unit loads the configuration file according to the class of the specified language and the plurality of binary files when the target application is started.
9. An electronic device, comprising:
a processor; and
a memory arranged to store computer executable instructions that, when executed, cause the processor to:
editing according to a configuration file of a target application to obtain a plurality of data tables, wherein the data tables comprise specified column names and a plurality of data types, and the data types comprise at least one of the following data types: the data processing method comprises the following steps of (1) obtaining a basic data type, a user-defined data type obtained based on IDL user definition and a complex data type generated by combining and nesting the basic data type and the user-defined data type;
generating a class of a specified language according to the specified column name and a plurality of data types;
generating a plurality of binary files according to data of different data types included in the plurality of data tables, wherein the binary files include binary structured numerical data;
and when the target application is started, loading the configuration file according to the class of the specified language and the plurality of binary files.
10. A computer-readable storage medium storing one or more programs that, when executed by an electronic device including a plurality of application programs, cause the electronic device to:
editing according to a configuration file of a target application to obtain a plurality of data tables, wherein the data tables comprise specified column names and a plurality of data types, and the data types comprise at least one of the following data types: the data processing method comprises the following steps of (1) obtaining a basic data type, a user-defined data type obtained based on IDL user definition and a complex data type generated by combining and nesting the basic data type and the user-defined data type;
generating a class of a specified language according to the specified column name and a plurality of data types;
generating a plurality of binary files according to data of different data types included in the plurality of data tables, wherein the binary files include binary structured numerical data;
and when the target application is started, loading the configuration file according to the class of the specified language and the plurality of binary files.
CN202010019456.8A 2020-01-08 2020-01-08 Configuration file loading method and device Active CN111240761B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010019456.8A CN111240761B (en) 2020-01-08 2020-01-08 Configuration file loading method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010019456.8A CN111240761B (en) 2020-01-08 2020-01-08 Configuration file loading method and device

Publications (2)

Publication Number Publication Date
CN111240761A true CN111240761A (en) 2020-06-05
CN111240761B CN111240761B (en) 2023-05-30

Family

ID=70864262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010019456.8A Active CN111240761B (en) 2020-01-08 2020-01-08 Configuration file loading method and device

Country Status (1)

Country Link
CN (1) CN111240761B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113656475A (en) * 2021-08-17 2021-11-16 在线途游(北京)科技有限公司 Data conversion method and device based on DSL intermediate description language

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100083223A1 (en) * 2008-09-30 2010-04-01 Ics Triplex Isagraf Inc. Compilation model
CN104077335A (en) * 2013-05-07 2014-10-01 腾讯科技(深圳)有限公司 Methods, devices and system for serializing and deserializing structured data
CN105608088A (en) * 2014-11-19 2016-05-25 中国航空工业集团公司西安飞机设计研究所 Method for automatically creating database and dynamically recording data on the basis of configuration file
CN105760534A (en) * 2016-03-10 2016-07-13 上海晶赞科技发展有限公司 User-defined serializable data structure, hadoop cluster, server and application method thereof
CN105787128A (en) * 2016-03-29 2016-07-20 四川秘无痕信息安全技术有限责任公司 Method for recovering Java serialized file data
CN107632828A (en) * 2016-07-18 2018-01-26 迈普通信技术股份有限公司 More dts files support method, compilation device and embedded device
CN109636884A (en) * 2018-10-25 2019-04-16 阿里巴巴集团控股有限公司 Animation processing method, device and equipment
CN110162306A (en) * 2018-02-14 2019-08-23 阿里巴巴集团控股有限公司 The just-ahead-of-time compilation method and apparatus of system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100083223A1 (en) * 2008-09-30 2010-04-01 Ics Triplex Isagraf Inc. Compilation model
CN104077335A (en) * 2013-05-07 2014-10-01 腾讯科技(深圳)有限公司 Methods, devices and system for serializing and deserializing structured data
CN105608088A (en) * 2014-11-19 2016-05-25 中国航空工业集团公司西安飞机设计研究所 Method for automatically creating database and dynamically recording data on the basis of configuration file
CN105760534A (en) * 2016-03-10 2016-07-13 上海晶赞科技发展有限公司 User-defined serializable data structure, hadoop cluster, server and application method thereof
CN105787128A (en) * 2016-03-29 2016-07-20 四川秘无痕信息安全技术有限责任公司 Method for recovering Java serialized file data
CN107632828A (en) * 2016-07-18 2018-01-26 迈普通信技术股份有限公司 More dts files support method, compilation device and embedded device
CN110162306A (en) * 2018-02-14 2019-08-23 阿里巴巴集团控股有限公司 The just-ahead-of-time compilation method and apparatus of system
CN109636884A (en) * 2018-10-25 2019-04-16 阿里巴巴集团控股有限公司 Animation processing method, device and equipment

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHU WANG 等: ""An Asymmetric Data Conversion Scheme based on Binary Tags"" *
李颖;胡明;: "基于C语言实现的IDL编译器" *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113656475A (en) * 2021-08-17 2021-11-16 在线途游(北京)科技有限公司 Data conversion method and device based on DSL intermediate description language

Also Published As

Publication number Publication date
CN111240761B (en) 2023-05-30

Similar Documents

Publication Publication Date Title
US9424009B2 (en) Handling pointers in program code in a system that supports multiple address spaces
US8549502B2 (en) Compiler with user-defined type inference rules
CN111427578B (en) Data conversion method, device and equipment
CN111240761B (en) Configuration file loading method and device
CN108984223B (en) Program call decoupling method and device, electronic equipment and storage medium
CN105867886B (en) Method and device for writing table
CN109032572B (en) Method for Java program method internal connection based on byte code
CN117493309A (en) Standard model generation method, device, equipment and storage medium
CN106502707B (en) Code generation method and device
CN116466953B (en) Modularized front-end development method, device, computer equipment and storage medium
CN112154413A (en) Configuration file generation method and device and storage medium
CN112181798B (en) Data recording method and device
CN111399842B (en) Code compiling method and device
CN113176877A (en) Entity class generation method, device and storage medium
CN113688056A (en) Breakpoint debugging control method and related equipment
CN110874350A (en) Method and device for processing structured log data
CN117289905B (en) Application software development method and device, storage medium and electronic equipment
CN117075912B (en) Method for program language conversion, compiling method and related equipment
CN117251234B (en) Function calling method and device based on patches
CN107391525B (en) Instruction processing method and device for database
CN116521250A (en) Plug-in loading method and device
CN116128066A (en) Data enhancement method, model training method and device
CN116931939A (en) Attribute access method and device
CN114527982A (en) Middleware file generation method, middleware calling method, middleware file generation device, middleware calling device and electronic equipment
CN118210798A (en) Data partitioning method, control device, storage medium and data partitioning 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
GR01 Patent grant