CN103793502A - Cloud-based heat path optimization method in just-in-time compiler - Google Patents

Cloud-based heat path optimization method in just-in-time compiler Download PDF

Info

Publication number
CN103793502A
CN103793502A CN201410033804.1A CN201410033804A CN103793502A CN 103793502 A CN103793502 A CN 103793502A CN 201410033804 A CN201410033804 A CN 201410033804A CN 103793502 A CN103793502 A CN 103793502A
Authority
CN
China
Prior art keywords
jit
cloud
traces
data
program
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
CN201410033804.1A
Other languages
Chinese (zh)
Other versions
CN103793502B (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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN201410033804.1A priority Critical patent/CN103793502B/en
Publication of CN103793502A publication Critical patent/CN103793502A/en
Application granted granted Critical
Publication of CN103793502B publication Critical patent/CN103793502B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation

Abstract

The invention provides a cloud-based heat path optimization method in a just-in-time compiler. When a local program idles, heat paths newly generated in a local just-in-time compiling queue are uploaded to a cloud end, data format arrangement is conducted when the heat paths are uploaded and the heat paths with the same program identifier are arranged to be one datum to be uploaded; a plurality of uploaded data of the same program can be obtained at the cloud end, and then statistical arrangement is conducted to enable the heat paths with the same program to be stored in one datum. When a program is newly started locally or the local program idles, the heat paths corresponding to the program are downloaded from the cloud end and added into the just-in-time compiling queue of a virtual machine. According to the cloud-based path optimization method in the just-in-time compiler, the heat paths obtained when local programs of all terminals run are uploaded to the cloud end for integration and counting, and comprehensive heat path statistical data when the programs run are obtained; when a user program idles, the heat paths in the programs are compiled in advance by downloading effectively cloud end data, and therefore the running efficiency is improved.

Description

A kind of hot path optimization method based on cloud in instant compiler
Technical field
The present invention relates to instant compiler and hot path technology, specifically a kind of hot path optimization method based on cloud in instant compiler.
Background technology
Instant compiler (Just-In-Time Compiler, JIT compiler) is that one is widely used in the compiling system in Java Virtual Machine, Dalvik virtual machine (virtual machine of operation Android program) and other language virtual machines.The difference of instant compiler and traditional compiling system is, it will not be performed program compilation is in advance object code, but in the time that program is moved, and what code that those need to be performed was instant is compiled into object code, then is carried out.
Because instant compiler is to compile in the time that program is moved, therefore the working time that compiler itself consumes and space be restriction to some extent all, this also make various optimization methods in instant compiler tend to adopt lightweight, algorithm faster, simultaneously, for the operation characteristic of instant compiler, flutterring and catch and compile for " hot path (JIT-Trace) " of program operation, is a kind of important compromise mechanism of taking into account effect of optimization and optimization expense.
With Dalvik virtual machine instance, as shown in Figure 1, it is in the time starting initialization, start to explain execution bytecode, in the time that certain section of code of interpretive routine is called, bytecode interpreter can record the number of times (profile count) of the code execution being labeled, and detect whether reach compiling threshold values, if reach the condition of compiling, illustrate that this section of code is one " hot path ", be switched to JIT compiler pattern and search corresponding Trace entrance, if there is not corresponding Trace, explain or create Trace foundation and ask and submit to requirement for compiler, starting compiler thread compiles hot path, if there is corresponding Trace, check and whether be compiled, if be not compiled, build compilation unit, generate intermediate code, in JIT-Code, hot path is compiled.Explain until read the head head of next Trace record.After hot path is compiled, carry out the machine code after compiling.Compared with interpreter pattern, the code travelling speed after JIT compiler generates is faster, and bytecode execution efficiency is better; But jit compiling itself also can take more time and space resources simultaneously, cause the phenomenon of Android program operation " getting stuck "; The statistics of hot path and calculating itself also can take ample resources; The problems such as in addition, JIT also exists relevant platform dependency, and development and maintenance cost is higher.
Summary of the invention
The present invention is directed to that existing hot path exists in instant compiler to take stock number large, development and maintenance high in cost of production problem, has proposed a kind of hot path optimization method based on cloud in instant compiler.
A kind of hot path optimization method based on cloud in instant compiler of the present invention, for a certain program, carries out following steps:
Step 1, in the time that program is idle, even if judge whether the hot path in the compiler of this locality has renewal, if having, performs step two, otherwise, go to step three execution; Even if the hot path in described this locality compiler is stored as the data structure of Jit-Trace form, this data structure comprises a bytecode method and the execution route that comprises this bytecode method.
Step 2, local Jit-Trace formatted data is converted to Native-Jit-Traces formatted data, prepares to carry out high in the clouds and upload; Described Native-Jit-Traces formatted data comprises data head and path data two parts; Data head comprises program identifier and the Cloud-Jit of version number, and program identifier comprises bag name, signature and the version number of program, and the Cloud-Jit of version number is for identifying the hot path information version of program; Path data part is with < bytecode method, the key-value pair mode of execution route array > is organized, each execution route in the Jit-Trace form that comprises corresponding bytecode method in execution route array, a key-value pair is a hot path.
Step 3, upload to high in the clouds by being positioned at local Native-Jit-Traces formatted data, sorting-out in statistics is carried out to all Native-Jit-Traces formatted datas with same program identifier in high in the clouds, generate Cloud-Jit-Traces formatted data, and be stored in the resource pool of high in the clouds;
Described Cloud-Jit-Traces formatted data comprises the identifier of program, the Cloud-Jit of version number, and path data, path data is with < bytecode method, execution route array, the key-value pair mode of statistics > is organized, and wherein, statistics is the statistics number of respective byte code method.A corresponding hot path of key-value pair.
Step 4, in the time that local program initialization or local program are idle, download the Cloud-Jit-Traces formatted data through statistical treatment of corresponding program from high in the clouds, and hot path joined in the Just-In-Time queue of virtual machine.
The data structure of the Jit-Trace form in described step 1, in the bytecode method that it comprises, stored affiliated class index, method ID, entry address and parameter information, its every execution route comprising has been stored entrance, exit point, byte code instruction number and the marking code in path.
While generating Cloud-Jit-Traces formatted data in described step 3, for a Native-Jit-Traces formatted data NT, first in resource pool, search beyond the clouds and whether have the Cloud-Jit-Traces formatted data with NT with same program identifier, carry out if exist (1), otherwise carry out (2); After the Cloud-Jit-Traces of program formatted data is newly created or is updated, the Cloud-Jit version number of Cloud-Jit-Traces formatted data is upgraded;
(1) establish and find the Cloud-Jit-Traces formatted data CT with NT with same program identifier, to the each key-value pair < bytecode method in NT, execution route array >, in CT, search the key-value pair whether with identical bytes code method and execution route array, if exist, upgrade the statistics of corresponding key assignments centering in CT, otherwise, in CT, generate corresponding key-value pair < bytecode method, execution route array, 1>;
(2) create a Cloud-Jit-Traces formatted data CT, the program identifier of CT is set identical with the program identifier of NT, to the each < bytecode method in NT, execution route array > key-value pair, the corresponding key-value pair < bytecode method that generates in CT, execution route array, statistics >, the statistics of initial each key-value pair is 1.
In described step 4, establish the Cloud-Jit-Traces formatted data CT that downloads corresponding from high in the clouds, first detect the local Native-Jit-Traces formatted data that whether has Cloud-Jit identical with CT version number, if exist, do not download; If do not exist, download CT, and create a Native-Jit-Traces formatted data NT, the program identifier of NT is set identical with the program identifier of CT, and according to each < bytecode method in CT, execution route array, statistics > key-value pair, the corresponding each < bytecode method generating in NT, execution route array > key-value pair, the version number of the Cloud-Jit that the Cloud-Jit version number that NT is set is CT.
Advantage of the present invention and good effect are: " hot path " information in program while obtaining its operation by the operation of each terminal local program, and upload to high in the clouds and integrate statistics, thus comprehensive " hot path " statistics while obtaining this program operation; Finally, user program at one's leisure, reaches the object of " hot path " just-ahead-of-time compilation making in program, thereby operational efficiency is highly improved by downloading effective high in the clouds data.
Accompanying drawing explanation
Fig. 1 is the principle schematic of the hot path optimization method based on cloud of the present invention;
Fig. 2 is the data structure schematic diagram of Jit-Trace form;
Fig. 3 is the data structure schematic diagram of the Native-Jit-Traces form uploaded of high in the clouds;
Fig. 4 is the schematic flow sheet that the hot path in native compile queue is converted to Native-Jit-Traces formatted data;
Fig. 5 is the data structure schematic diagram of Cloud-Jit-Traces form;
Fig. 6 is the process flow diagram that high in the clouds is converted to Native-Jit-Traces data Cloud-Jit-Traces data;
Fig. 7 is from high in the clouds download path data and joins the schematic flow sheet native compile queue.
Embodiment
Below in conjunction with drawings and Examples, the present invention is described in further detail.
A kind of hot path optimization method based on cloud in instant compiler of the present invention, bulk treatment and the principle of optimality are as shown in Figure 1.It shown in empty frame, is the improved technical scheme of the present invention.For a certain application program, the present invention is in the time that it is idle, and the hot path that it is produced in different local terminals uploads to high in the clouds, then in the time that application program is carried out in this locality again, download the up-to-date hot path through statistical study from high in the clouds, and give just-ahead-of-time compilation in the time that program operation is idle.
Take an Android application A PP as example, in the time that it moves on different local terminals, can produce separately the Just-In-Time code based on " hot path " accordingly; And the hot path of all program generations in service by Dalvik virtual machine by overall data structure storage, carry out at every turn JIT check time can judge whether by jit compiling mistake according to the sign on of method, as shown in Figure 2.These be picked as Jit-Trace's " hot path " meeting under certain runtime environment (program initialization, program idle or other idle processors etc.), encode through form as shown in Figure 3 and pack and be uploaded to high in the clouds, as shown in Figure 4.The processing such as high in the clouds can be added up relevant data, renewal, as shown in Figure 6.In the time that this Android program reruns on user mobile phone, download the up-to-date hot path through statistical study from high in the clouds, and in the time that program operation is idle, give just-ahead-of-time compilation, as shown in Figure 7, thereby after can either obtaining hot path compiling, program is moved the benefit of accelerating, the computing resource waste problem of having avoided hot path to recalculate and add up.
Below the step of a kind of hot path optimization method based on cloud in instant compiler provided by the invention is elaborated.Hot path optimization method of the present invention comprises that step 1 is to step 4.
Step 1, in the time that program is idle, even if judge whether the hot path in the compiler of this locality has renewal, if having, performs step two, otherwise, go to step three execution.
Fig. 2 has described the data structure of the Jit-Trace of the Just-In-Time mechanism based on " hot path " in Dalvik virtual machine.Each Jit-Trace packet, containing a bytecode method Method, determined whether to comprise or was selected as according to the first address of Method " hot path " before compiling; Simultaneously each Jit-Trace data also comprised one or more for record " hot path " and TraceRun information, whether each TraceRun has stored the Hint of the start offset amount of carrying out in path, the byte code instruction number that comprises, end byte code and last code etc., also comprise miscellaneous, headspace, be code zone bit etc. in each TraceRun.
Method structure is that Classloader is resolved and obtained by the loading to Dex file, has represented a method structure, has stored affiliated class index, method ID, entry address and parameter information etc.The corresponding Method of each Jit-Trace data; Many the execution " path " that each Jit-Trace comprises this Method, and each " path " represent with TraceRun, recorded the information such as entrance (being start offset amount), exit point, instruction number and the marking code in this " path ".
Step 2, for a certain application program, is converted to a Native-Jit-Traces formatted data by all Jit-Trace formatted datas of this locality, prepares to carry out high in the clouds and uploads.This step is carried out in the time that application program is idle.
Fig. 3 has described the data structure Jit-Trace in virtual machine has been carried out to corresponding data processing, is encoded to Native-Jit-Traces data structure, uploads thereby carry out high in the clouds.Native-Jit-Traces packs the data in Jit-Trace, and adds data head to form.Native-Jit-Traces formatted data comprises two parts: data head and path data part.The identifier of the App program that data head comprises operation, as the bag name of App, signature and version number etc.; Meanwhile, in data head, also add the version number of Cloud-Jit, so that the version comparison in carrying out downloading corresponding Jit-Trace from high in the clouds, if Jit-Trace version updating corresponding to high in the clouds upgraded local corresponding Jit-Trace information.The Cloud-Jit of version number is for identifying the version number of program hot path information, need to upgrade determining whether for the version in more local and high in the clouds, the hot path information of high in the clouds sorting-out in statistics at every turn more new capital will upgrade this version number.
The Trace information that the path data part of Native-Jit-Traces comprises packing, with < bytecode method, the key-value pair mode of execution route array > is organized.Wherein, the bytecode method of the corresponding Jit-Trace formatted data of bytecode method, execution route array, also claims JitTraceRun array, is variable data array, size is indefinite.In each JitTraceRun array, record the information of all TraceRun in the Jit-Trace formatted data of corresponding bytecode method.As <M in Fig. 3 n, JitTraceRuns[m n] >, record bytecode method M nand comprise M nall execution routes.
This step generates application program all hot path data in this locality are integrated.A Native-Jit-Traces formatted data comprises multiple Jit-Trace formatted datas, multiple TraceRun information that JitTraceRun array has comprised its corresponding Method.
Fig. 4 has provided the hot path in Just-In-Time queue in virtual machine has been packaged as to Native-Jit-Traces data message, and preparation uploads to the process of high in the clouds resource pool, in the time of program free time or available free processing resource, this process can be triggered and be called repeatedly.
In Fig. 4, " beginning " expression the inventive method is started working in virtual machine.
Step 2.1, checks that the whether idle or available free computational resource of App program prepares to high in the clouds for the Native-Jit-Traces data upload that is about to carry out, and if so, carries out the execution of step 2.2; If not, finish this data upload preliminary work and continue the execution of program.
Step 2.2, Just-In-Time queue in accesses virtual machine in the immediate status variable of the overall situation, this queue is to organize in the mode of array, comprise all current Trace information that will process or processed in instant compiler, each data element is a hot path information, and a Jit-Trace formatted data shown in corresponding diagram 2, can access one by one to array element when processing, in the time that whole elements have been accessed, carry out step 2.3.
Step 2.3, will in step 2.2, have access to the Jit-Trace formatted data corresponding to array element of compiling queue, encode and pack in the data of Native-Jit-Traces form of corresponding program according to the mode shown in Fig. 3, then carry out step 2.4.
Step 2.4, judges whether the array element of compiling queue has accessed, and if not, turns back to step 2.1 and continues to carry out; If so, carry out step 2.5.
Step 2.5, prepares to be treated to the hot path data in the instant compiler of Native-Jit-Traces form by packing, and uploads to high in the clouds resource pool by network communication module.
" end " in Fig. 4 represents that this processing to local Native-Jit-Traces formatted data finishes.
Step 3, in the time that App program is idle or available free computational resource can be used for carrying out Native-Jit-Traces data upload to high in the clouds, upload to high in the clouds by being positioned at local Native-Jit-Traces formatted data, process Native-Jit-Traces formatted data in high in the clouds, generate Cloud-Jit-Traces formatted data, and be stored in high in the clouds data pool.
In Fig. 5, having described the data layout of Cloud-Jit-Traces, is by the data of all Native-Jit-Traces that upload of same program organizational form beyond the clouds.Cloud-Jit-Traces data merge the Native-Jit-Traces data with same App bag name, signature and version number, in path data, add the statistical information to each bytecode method simultaneously, specifically with < bytecode method, execution route array, the organizational form storage of statistics >.If there is corresponding < bytecode method in Cloud-Jit-Traces data, JitTraceRun array >, statistics is from increasing; Otherwise add this Trace information, and initialization statistics is 1.
Path 1:<M as shown in Figure 5 1, JitTraceRun[m 1], C 1>, M 1for bytecode method name, JitTraceRun[m 1] comprise method M 1m 1the information of bar execution route, C 1for the statistics in this path.
Fig. 6 has described the method that Native-Jit-Traces data is converted to Cloud-Jit-Traces data.In Fig. 6, " beginning " expression high in the clouds starts the Native-Jit-Traces data processing of uploading, and in the time having multiple Native-Jit-Traces data upload, can recursive call Fig. 6 process process.
Step 3.1, reads the Native-Jit-Traces formatted data that uploads to high in the clouds, as to establish the current data of obtaining be NT, obtains data head and the path data information of NT, for following data processing is prepared, will the every paths Trace in NT be accessed one by one.
Whether step 3.2, in all Cloud-Jit-Traces formatted datas beyond the clouds, search the App bag name recording in NT data head and exist, if not, and execution step 3.5; If so, carry out next step.
Step 3.3, in the Cloud-Jit-Traces formatted data finding, judges that whether the App signature of NT is consistent with the App signature of found data, if not, and execution step 3.5; If so, carry out next step.
Step 3.4, in the Cloud-Jit-Traces formatted data finding, whether the App version number that judges NT is consistent with the App version number of found data, if not, execution step 3.5; If so, obtain the Cloud-Jit-Traces formatted data that possesses App bag name identical with NT, signature and version number, establishing obtained data is CT i, then carry out step 3.6.
Step 3.5, creates a Cloud-Jit-Traces formatted data CT, the App bag name of the App bag NT by name of CT is set, the App signature that the App signature of CT is NT, the App version that the App version of CT is NT; Each path in NT is added in CT.
For the i paths T in NT i, path T ifor <M i, JitTraceRuns[m i] >, i is positive integer, generates corresponding path data item <M i, JitTraceRuns[m i], 1> deposits in CT.After in depositing all paths in NT in CT, execution step 3.10.
Step 3.6, reads the path T of path data division in NT one by one i, carry out next step judgement.
Path T ifor <M i, JitTraceRuns[m i] >, i is positive integer, is initially 1.
Step 3.7, accessed path T iwhether at data CT imiddle existence, concrete passing through at CT iin search and whether exist and T ibytecode method M iwith execution route array JitTraceRuns[m i] identical path data item, check T iwhether at CT iin, if not, T is described ithis paths is CT inew route, by path T ijoin CT iin, to data CT ipath data in add <M i, JitTraceRuns[m i], C ithe data item of >, C ibe initially set to 1; If so, CT is described iin there is T ithis paths, continues to carry out next step.
Step 3.8, CT iin there is T ipath entry, upgrades the statistic C of this path entry i.After completing, carry out next step judgement.
Step 3.9, judge current whether all paths in NT are all read complete, if not, i from increase 1, return to step 3.6 and read next paths in NT; If so, carry out next step.
Step 3.10, after the Cloud-Jit-Traces of program formatted data is newly created or is updated, upgrades the Cloud-Jit version number of Cloud-Jit-Traces formatted data, and indicating it has data change.
In Fig. 6, " end " expression finishes the processing of Native-Jit-Traces data.
Step 4, in the time of local program initialization or local program free time, downloads the hot path data through statistical treatment of corresponding program from high in the clouds, i.e. Cloud-Jit-Traces formatted data, and hot path is joined in the Just-In-Time queue of virtual machine.
User carries out the process of path data download from high in the clouds, as shown in Figure 7, in user application App initialization or the situation of free time, can be called.Obtain up-to-date routing information from high in the clouds resource pool, just-ahead-of-time compilation, thus promote overall operation efficiency.In Fig. 7, " beginning " represents from high in the clouds data are downloaded.
Step 4.1, obtains current App bag name, signature and version number, searches and the Cloud-Jit-Traces formatted data with identical App bag name, signature and version number from high in the clouds resource pool, establishes and finds data CT, reads CT, carries out next step judgement after completing.
Step 4.2, the Cloud-Jit version number of inspection CT, judges whether in local Native-Jit-Traces formatted data, to exist, if, the hot path information that local program is described has been synchronizeed with the hot path information in high in the clouds, returns to step 4.1, reads next time; If not, carry out next step.
Step 4.3, downloading data CT, obtain data head and the Trace data item of CT, and create a Native-Jit-Traces formatted data NT, App bag name, signature and version number in NT is identical with CT's, path data item in NT generates according to the each path data item in CT, the version number of the Cloud-Jit that the Cloud-Jit version number that NT is set is CT.After completing, carry out step 4.4.
Data item <M in CT 1, JitTraceRun[m 1], C 1data item <M in the corresponding NT of > 1, JitTraceRun[m 1] >.
Step 4.4, the Native-Jit-Traces formatted data NT that step 4.3 is created, joins the Just-In-Time queue of virtual machine, in the time that compiling queue is started working, just just-ahead-of-time compilation can be carried out in the path in the NT adding.After completing, carry out step 4.5.
Step 4.5, for certain application A pp, there is beyond the clouds the Cloud-Jit-Traces formatted data of sorting-out in statistics, when this Cloud-Jit-Traces formatted data because data volume is excessive or while exceeding the treatment limits of terminal, need repeatedly to download from high in the clouds and read.Now, it is complete whether the path data that inspection will be downloaded from high in the clouds reads, and if not, returns to step 4.1, continues to read; If so, carry out " end ".
" end " in Fig. 7 represents the processing of high in the clouds data to finish.

Claims (4)

1. a kind of hot path optimization method based on cloud in instant compiler, is characterized in that, for a certain program, carries out following steps:
Step 1: in the time that program is idle, even if judge whether the hot path in the compiler of this locality has renewal, if having, execution step two, otherwise, execution step three;
Even if the hot path in described this locality compiler is stored as the data structure of Jit-Trace form, this data structure comprises a bytecode method and the execution route that comprises this bytecode method;
Step 2: local Jit-Trace formatted data is converted to Native-Jit-Traces formatted data;
Described Native-Jit-Traces formatted data comprises data head and path data two parts; Data head comprises program identifier and the Cloud-Jit of version number, and program identifier comprises bag name, signature and the version number of program; Path data part is with < bytecode method, the key-value pair mode of execution route array > is organized, each execution route in the Jit-Trace form that comprises corresponding bytecode method in execution route array, a corresponding hot path of key-value pair;
Step 3: upload to high in the clouds by being positioned at local Native-Jit-Traces formatted data, sorting-out in statistics is carried out to all Native-Jit-Traces formatted datas with same program identifier in high in the clouds, generate Cloud-Jit-Traces formatted data, and be stored in the resource pool of high in the clouds;
Described Cloud-Jit-Traces formatted data comprises program identifier, the Cloud-Jit of version number, and path data, path data is with < bytecode method, execution route array, the key-value pair mode of statistics > is organized, wherein, statistics is the statistics number of respective byte code method, a corresponding hot path of key-value pair;
Step 4: in the time of local program initialization or local program free time, download the Cloud-Jit-Traces formatted data through statistical treatment of corresponding program from high in the clouds, and hot path is joined in the Just-In-Time queue of virtual machine.
2. a kind of hot path optimization method based on cloud in instant compiler according to claim 1, it is characterized in that, the data structure of the Jit-Trace form described in step 1, in the bytecode method that it comprises, stored affiliated class index, method ID, entry address and parameter information, its every execution route comprising has been stored entrance, exit point, byte code instruction number and the marking code in path.
3. a kind of hot path optimization method based on cloud in instant compiler according to claim 1, it is characterized in that, when generation Cloud-Jit-Traces formatted data described in step 3, for a Native-Jit-Traces formatted data NT, first in resource pool, search beyond the clouds and whether have the Cloud-Jit-Traces formatted data with NT with same program identifier, carry out if exist (1), otherwise carry out (2); After the Cloud-Jit-Traces of program formatted data is newly created or is updated, the Cloud-Jit version number of Cloud-Jit-Traces formatted data is upgraded;
(1) establish and find the Cloud-Jit-Traces formatted data CT with NT with same program identifier, to the each key-value pair < bytecode method in NT, execution route array >, in CT, search and whether have the key-value pair with identical bytes code method and execution route array, if exist, upgrade the statistics of corresponding key assignments centering in CT, otherwise, in CT, generate corresponding key-value pair < bytecode method, execution route array, 1>;
(2) create a Cloud-Jit-Traces formatted data CT, the program identifier of CT is set identical with the program identifier of NT, to the each < bytecode method in NT, execution route array > key-value pair, the corresponding key-value pair < bytecode method that generates in CT, execution route array, statistics >, the statistics of initial each key-value pair is 1.
4. a kind of hot path optimization method based on cloud in instant compiler according to claim 1, it is characterized in that, described step 4, if the Cloud-Jit-Traces formatted data CT that downloads corresponding from high in the clouds, first detect the local Native-Jit-Traces formatted data that whether has Cloud-Jit identical with CT version number, if exist, do not download; If do not exist, download CT, and create a Native-Jit-Traces formatted data NT, the program identifier of NT is set identical with the program identifier of CT, and according to each < bytecode method in CT, execution route array, statistics > key-value pair, the corresponding each < bytecode method generating in NT, execution route array > key-value pair, the version number of the Cloud-Jit that the Cloud-Jit version number that NT is set is CT.
CN201410033804.1A 2014-01-24 2014-01-24 Cloud-based heat path optimization method in just-in-time compiler Expired - Fee Related CN103793502B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410033804.1A CN103793502B (en) 2014-01-24 2014-01-24 Cloud-based heat path optimization method in just-in-time compiler

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410033804.1A CN103793502B (en) 2014-01-24 2014-01-24 Cloud-based heat path optimization method in just-in-time compiler

Publications (2)

Publication Number Publication Date
CN103793502A true CN103793502A (en) 2014-05-14
CN103793502B CN103793502B (en) 2017-01-18

Family

ID=50669168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410033804.1A Expired - Fee Related CN103793502B (en) 2014-01-24 2014-01-24 Cloud-based heat path optimization method in just-in-time compiler

Country Status (1)

Country Link
CN (1) CN103793502B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106325963A (en) * 2015-06-16 2017-01-11 龙芯中科技术有限公司 Self-adaptive dynamic compiling scheduling method and device
CN106325964A (en) * 2015-06-18 2017-01-11 龙芯中科技术有限公司 Dynamic compiling and scheduling method and device
CN103793502B (en) * 2014-01-24 2017-01-18 北京航空航天大学 Cloud-based heat path optimization method in just-in-time compiler

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110196824A1 (en) * 2010-02-05 2011-08-11 Oracle International Corporation Orchestrated data exchange and synchronization between data repositories
CN102325192A (en) * 2011-09-30 2012-01-18 上海宝信软件股份有限公司 Cloud computing implementation method and system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103793502B (en) * 2014-01-24 2017-01-18 北京航空航天大学 Cloud-based heat path optimization method in just-in-time compiler

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110196824A1 (en) * 2010-02-05 2011-08-11 Oracle International Corporation Orchestrated data exchange and synchronization between data repositories
CN102325192A (en) * 2011-09-30 2012-01-18 上海宝信软件股份有限公司 Cloud computing implementation method and system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103793502B (en) * 2014-01-24 2017-01-18 北京航空航天大学 Cloud-based heat path optimization method in just-in-time compiler
CN106325963A (en) * 2015-06-16 2017-01-11 龙芯中科技术有限公司 Self-adaptive dynamic compiling scheduling method and device
CN106325963B (en) * 2015-06-16 2020-04-14 龙芯中科技术有限公司 Self-adaptive dynamic compiling and scheduling method and device
CN106325964A (en) * 2015-06-18 2017-01-11 龙芯中科技术有限公司 Dynamic compiling and scheduling method and device
CN106325964B (en) * 2015-06-18 2019-09-27 龙芯中科技术有限公司 On-the-flier compiler dispatching method and device

Also Published As

Publication number Publication date
CN103793502B (en) 2017-01-18

Similar Documents

Publication Publication Date Title
US10198250B1 (en) Partitioning based migration of systems to container and microservice based platforms
CN106796522B (en) System and method for updating source code file
CN108369591B (en) System and method for caching and parameterizing IR
CN103797436B (en) For the dynamic power optimization of calculation element
EP3465428B1 (en) Sample driven profile guided optimization with precise correlation
CN107506219A (en) A kind of general version upgrade method based on android system
CN103984582A (en) Method and device for hot updating
CN103164249A (en) Extension mechanism for scripting language compiler
CN110866029B (en) sql statement construction method, device, server and readable storage medium
CN109032631A (en) Application program service packs acquisition methods, device, computer equipment and storage medium
KR102013582B1 (en) Apparatus and method for detecting error and determining corresponding position in source code of mixed mode application program source code thereof
CN103713933A (en) Method, device and system for converging hotspot functions and variables in computer programs
CN110609689A (en) Application installation and operation method and device
CN114217886A (en) Function calling method, computing device and storage medium
CN104133699A (en) Equipment system software updating method and equipment system software updating system
CN103793502A (en) Cloud-based heat path optimization method in just-in-time compiler
CN115469894A (en) Application program installation control method, device, equipment and storage medium
US20130019230A1 (en) Program Generating Apparatus, Method of Generating Program, and Medium
CN111240772A (en) Data processing method and device based on block chain and storage medium
CN116484947B (en) Operator automatic generation method, device, equipment and medium
CN109634569A (en) Process implementation method, device, equipment and readable storage medium storing program for executing based on note
CN108845864A (en) A kind of JVM rubbish recovering method and device based on spring frame
Martins et al. Automatic Decomposition of IoT Aware Business Processes with Data and Control Flow Distribution.
CN109753767B (en) Software distribution and updating method and device based on block chain, server and client
Popov et al. Piecewise holistic autotuning of compiler and runtime parameters

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170118

Termination date: 20220124

CF01 Termination of patent right due to non-payment of annual fee