CN102955712B - There is provided incidence relation and the method and apparatus of run time version optimization - Google Patents

There is provided incidence relation and the method and apparatus of run time version optimization Download PDF

Info

Publication number
CN102955712B
CN102955712B CN201110252353.7A CN201110252353A CN102955712B CN 102955712 B CN102955712 B CN 102955712B CN 201110252353 A CN201110252353 A CN 201110252353A CN 102955712 B CN102955712 B CN 102955712B
Authority
CN
China
Prior art keywords
incidence relation
code
instruction sequence
performance
instruction
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.)
Expired - Fee Related
Application number
CN201110252353.7A
Other languages
Chinese (zh)
Other versions
CN102955712A (en
Inventor
邹嘉
范伟
侯锐
M·沃斯特
王艳琦
孙正雅
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201110252353.7A priority Critical patent/CN102955712B/en
Priority to DE201210214672 priority patent/DE102012214672A1/en
Priority to GB201215035A priority patent/GB2494268A/en
Publication of CN102955712A publication Critical patent/CN102955712A/en
Application granted granted Critical
Publication of CN102955712B publication Critical patent/CN102955712B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

The invention provides the method and system of performance optimization, described method comprises: on the first physical platform, obtain the performance sampled data relevant to the execution of first code, according to the incidence relation between described performance sampled data determination instruction sequence and performance deficiency event, and described incidence relation is supplied to other physical platforms.Second physical platform can obtain described incidence relation, and utilize described incidence relation to optimize second code, thus optimize the execution performance of second code on the first physical platform.Device provided by the invention is corresponding with said method.Utilize method and apparatus of the present invention, incidence relation can be generated based on target physical platform, development platform is optimized exploitation code, thus realize cross-platform performance optimization, and make optimizing process more efficiently convenient.

Description

There is provided incidence relation and the method and apparatus of run time version optimization
Technical field
The present invention relates to the optimization of computing machine execution performance, more specifically, relate to the performance optimization carried out across physical platform.
Background technology
The execution performance of development to computing machine of infotech proposes more and more higher requirement.In practice, execution performance not only depends on the physical platform of computing machine, also depends on the utilization ratio of software application when performing to physical platform.If have good concertedness (synergy) between software and hardware, namely, software application can utilize the executive capability of physical platform fully, just can obtain higher execution performance.
In order to improve execution performance, when developing and operating software applies, often needing to be optimized software application, making it adapt to hardware platform better.Particularly, in software code implementation, processor can be sampled and record to the implementation status of instruction, forming property sampled data.The behavior relevant to hardware performance occurred when this performance sampled data can reflect that instruction performs and event.By analyzing such performance sampled data, the practice condition of specific instruction in particular hardware platform can be known.Based on the practice condition obtained, just can be optimized instruction code, eliminate the event causing performance deficiency, thus improve execution performance.
Specifically, existing various processor unit can provide hardware signal to indicate hardware performance event.In order to obtain these performance events, can arrange performance monitoring unit on a hardware platform, this monitor unit comprises multiple special hardware performance counter, and each counter is connected to a hardware signal by converter.The sampling thief run in OS kernel can be sampled to these counters, and above-mentioned sampling periodically can be carried out or triggered by the overflow exception of performance monitor.Sampling daily record can be stored among memory buffer, finally writes a document, forming property sampled data thus.
Typically, according to different hardware configurations, tens even thousands of kinds of different hardware performance events may be there are within a processor.Such event such as comprises, instruction cache does not hit (ICacheMiss), data cache does not hit (DCacheMiss), TLB does not hit (TLBMiss), instruction pipelining stops (Stall), pipeline latency (Recycle), etc.The type of event depends on the physical arrangement of processor.These events can change the state of processor, are the key factors affecting execution performance.
Fig. 1 illustrates the example of a typical performance sampled data.In the example in fig 1, performance sampled data is arranged to a form, each entry of form, such as every row, and the implementation status of an instruction is shown, the information and the performance event relevant to this instruction that comprise instruction are added up.The information of instruction comprises, such as, the module title (Mod) of instruction, instruction address (Addr), (jump instruction) destination address (TargetAddr), instruction operation code (Opcode), operand (Operand), hits (ticks) etc.; The performance event relevant to this instruction adds up the sample information comprising and the events such as ICacheMiss, DCacheMiss, TLBMiss, Stall, Recycle as above occur.Be appreciated that the configuration of the stuctures and properties monitor unit according to physical platform, performance sampled data can comprise more or different performance events.Usually, the performance deficiency when and instruction of performance event at least partially recorded performs is relevant.Such as, the various speed bufferings recorded in Fig. 1 (CacheMiss) event of not hitting can make processor directly can not read data from speed buffering, Stall and the Recycle event of streamline can make the execution of instruction stream temporarily hang up or wait for, etc.The generation of these events all can make the execution speed of processor and efficiency reduce, and causes performance deficiency, therefore this kind of event can be called performance deficiency event.
Therefore, by analyzing above performance sampled data, obtaining the command information relevant to performance deficiency, just likely overcoming these defects, thus code is optimized, improve the execution performance of processor.Fig. 2 illustrates the schematic diagram carrying out code optimization in prior art.As shown in the figure, Same Physical platform provides optimizer and performance element.Various code, comprises the binary code after the source code of software application, intermediate code or conversion, is first imported in optimizer.If code performs first, so code is directly transferred to performance element by optimizer.Perform in the process of these codes at performance element, as mentioned above, performance monitoring unit can generate and perform relevant performance sampled data to code.Once obtain such performance sampled data, optimizer just can obtain the event relevant to performance deficiency by analytical performance sampled data.Based on performance deficiency event, optimizer can adjust code and optimize, and attempts to eliminate or reduce performance deficiency event.Then, optimizer will again be sent to performance element through optimized code and perform, thus again generate performance sampled data.By analytical performance sampled data again, optimizer is optimized code again, further removal capacity defect.So, through such execution repeatedly and adjustment, the code of software application can be made to be suitable for better performing platform.
In the optimizing process shown in Fig. 2, the optimization of code is based on the analysis to performance sampled data, and performance sampled data generates based on the execution of this code on particular platform, therefore, first must perform code on target physical platform and just may be optimized it, perform and optimize and must carry out on Same Physical platform.But in practice, the exploitation of software application is carried out in development platform by technician usually, it performs and then usually to carry out on the hardware platform of client.Because the physical features of the hardware platform of executive software application is various, will carry out code optimization for each hardware platform just needs to carry out code execution on a variety of platforms, and this certainly leads to very expensive Cost optimization.On the other hand, performance sampled data can reflect the command information that physical platform performs, and therefore, is likely brought the hidden danger of secure context by the mode of developer's run time version optimization on the hardware platform of client, such as source of leaks code information, or the confidential information of leaking client aspect.Therefore, existing performance optimization scheme is at many-sided Shortcomings.
Summary of the invention
In view of problem set forth above, the present invention proposes a kind of cross-platform scheme of carrying out performance optimization, is intended to overcome at least one the problem existed in prior art.
Particularly, according to a first aspect of the present invention, a kind of method providing incidence relation is proposed, comprise: obtain the performance sampled data relevant to the execution of first code, this performance sampled data comprises the information of the instruction corresponding with described first code and the information of the performance deficiency event corresponding with described instruction; According to described performance sampled data, build at least one instruction sequence, and determine described incidence relation between at least one instruction sequence and performance deficiency event; And, described incidence relation is supplied to other physical platforms, for the optimization performing second code on these other physical platforms based on described incidence relation.
According to a second aspect of the present invention, propose a kind of method that run time version is optimized, comprising: obtain as first aspect the incidence relation that provides; According to described incidence relation, determine the performance deficiency event that second code is corresponding; And based on the performance deficiency event determined, optimize second code.
According to a third aspect of the present invention, a kind of device providing incidence relation is proposed, comprise: sampled data acquiring unit, be configured to obtain the performance sampled data relevant to the execution of first code, this performance sampled data comprises the information of the instruction corresponding with described first code and the information of the performance deficiency event corresponding with described instruction; Incidence relation determining unit, is configured to, according to described performance sampled data, build at least one instruction sequence, and determines described incidence relation between at least one instruction sequence and performance deficiency event; And incidence relation providing unit, is configured to described incidence relation to be supplied to other physical platforms, for the optimization performing second code on these other physical platforms based on described incidence relation.
According to a fourth aspect of the present invention, propose the device that a kind of run time version is optimized, comprising: incidence relation acquiring unit, be configured to obtain as the third aspect device the incidence relation that provides; Defect determining unit, is configured to according to described incidence relation, determines the performance deficiency event that second code is corresponding; And code optimization unit, being configured to the performance deficiency event based on determining, optimizing second code
Utilize method and apparatus of the present invention, can based on the incidence relation between the instruction sequence generated on target physical platform and performance deficiency event, development platform is optimized exploitation code, it is made to be suitable for target platform better, thus realize cross-platform performance optimization, and make optimizing process more efficiently convenient.
Accompanying drawing explanation
Fig. 1 illustrates the example of a typical performance sampled data;
Fig. 2 illustrates the schematic diagram carrying out code optimization in prior art;
Fig. 3 illustrates the process flow diagram of the method providing incidence relation according to an embodiment of the invention;
Fig. 4 illustrates the process flow diagram of the method for run time version optimization according to an embodiment of the invention;
Fig. 5 A illustrates the sub-step determining incidence relation according to an embodiment of the invention;
Fig. 5 B illustrates the sub-step determining incidence relation according to another embodiment of the present invention;
Fig. 6 illustrates the example according to one embodiment of the invention, instruction sequence being carried out to fierceness and coding;
Fig. 7 illustrates the schematic diagram of incidence relation according to an embodiment of the invention;
Fig. 8 illustrates the sub-step determining performance deficiency event according to an embodiment of the invention;
Fig. 9 A illustrates the schematic block diagram of the device providing incidence relation according to an embodiment of the invention;
Fig. 9 B illustrates the schematic block diagram of the device of run time version optimization according to an embodiment of the invention;
Figure 10 illustrates the block diagram of the exemplary computer system 100 be suitable for for realizing embodiment of the present invention.
Embodiment
Below the specific embodiment of the present invention is described in detail.Person of ordinary skill in the field knows, many aspects of the present invention can be presented as system, method or computer program.Therefore, many aspects of the present invention can be implemented as following form, that is, can be hardware, completely software (comprising firmware, resident software, microcode etc.) or be commonly referred to as " circuit ", " module " or the software section of " system " and the combination of hardware components herein completely.In addition, many aspects of the present invention can also take the form of the computer program be embodied in one or more computer-readable medium, comprise in this computer-readable medium computing machine can procedure code.
Any combination of one or more computer-readable medium can be used.Computer-readable medium can be computer-readable signal media or computer-readable recording medium.Computer-readable recording medium such as may be-but not limited to-electricity, magnetic, light, electromagnetism, the system of ultrared or semiconductor, device, device or any above combination.The example more specifically (non exhaustive list) of computer-readable recording medium comprises following: have the electrical connection of one or more wire, portable computer diskette, hard disk, random access memory (RAM), ROM (read-only memory) (ROM), erasable type programmable read only memory (EPROM or flash memory), optical fiber, Portable, compact disk ROM (read-only memory) (CD-ROM), light storage device, magnetic memory device or above-mentioned any suitable combination.In the linguistic context of presents, computer-readable recording medium can be any comprising or stored program tangible medium, and this program is used by instruction execution system, device or device or is combined with it.
Computer-readable signal media can comprise in a base band or propagate as a carrier wave part, the data-signal of the propagation that wherein embodies computer-readable procedure code.The signal of this propagation can adopt various ways, comprises---but being not limited to---electromagnetic signal, light signal or any above suitable combination.But computer-readable signal media can be not for computer-readable recording medium can send, propagates or transmit any computer-readable medium for the program used by instruction execution system, device or device or be combined with it.
The program code that computer-readable medium comprises can with any suitable medium transmission, comprises that---but being not limited to---is wireless, electric wire, optical cable, RF etc., or any suitable combinations thereof.
For performing the computer program code of operation of the present invention, can write with any combination of one or more programming languages, described programming language comprises object oriented program language-such as Java, Smalltalk, C++ and so on, also comprises conventional process type programming language-such as " C " programming language or similar programming language.Procedure code can fully in the calculating of user perform, partly on the computing machine of user perform, as one independently software package perform, part perform on the remote computer in the computing machine upper part of user or perform on remote computer or server completely.In rear a kind of situation, remote computer can by the network of any kind---comprise the computing machine of LAN (Local Area Network) (LAN) or wide area network (WAN)-be connected to user, or, (can such as utilize ISP to pass through the Internet) and be connected to outer computer.
Referring to according to the process flow diagram of the method for the embodiment of the present invention, device (system) and computer program and/or block diagram, many aspects of the present invention are described.It is clear that the combination of each square frame in each square frame of process flow diagram and/or block diagram and process flow diagram and/or block diagram, can be realized by computer program instructions.These computer program instructions can be supplied to the processor of multi-purpose computer, special purpose computer or other programmable data treating apparatus, thus produce a kind of machine, make these instructions performed by computing machine or other programmable data treating apparatus, produce the device of the function/operation specified in the square frame in realization flow figure and/or block diagram.
Also these computer program instructions can be stored in can in the computer-readable medium that works in a specific way of instructs computer or other programmable data treating apparatus, like this, the instruction be stored in computer-readable medium produces the manufacture of the command device (instructionmeans) of the function/operation specified in a square frame comprising in realization flow figure and/or block diagram.
Also can computer program instructions be loaded on computing machine or other programmable data treating apparatus, make to perform sequence of operations step on computing machine or other programmable data treating apparatus, to produce computer implemented process, thus the instruction performed on computing machine or other programmable device just provides the process of the function/operation specified in the square frame in realization flow figure and/or block diagram.
With reference to the accompanying drawings, present invention is described in conjunction with specific embodiments.Such description only for purpose of explanation, and is not intended to limit scope of the present invention.
In embodiments of the invention, by the performance sampled data of evaluating objects physical platform, obtain the incidence relation between instruction sequence and performance deficiency, then, development platform utilizes the incidence relation of acquisition carry out Optimized code, thus realize cross-platform performance optimization.As previously mentioned, the behavior relevant to hardware performance occurred when performance sampled data can reflect that instruction performs and event, the code that its hardware characteristics closely depending on physical platform and this physical platform perform.That is, performance sampled data embodies the hardware characteristics of physical platform and the code characteristic of execution simultaneously.This also just in prior art must first run time version, produce corresponding performance sampled data, could according to the reason of this sampled data Optimized code.But, in an embodiment of the present invention, by analytical performance sampled data, therefrom excavate out the statistical law that and instruction sequence is relevant with performance deficiency event, and the incidence relation obtained between instruction sequence and performance deficiency, such incidence relation only reflects the hardware characteristics of physical platform, and has nothing to do with performed code.Based on such incidence relation, just in the enterprising line code optimization of development platform, optimized code can be made to be suitable for target physical platform better, thus to realize cross-platform performance optimization.Embodiments of the invention are specifically described below in conjunction with accompanying drawing and example.
According to embodiments of the invention, cross-platform process of carrying out performance optimization can be divided into two stages, namely, in the upper method providing incidence relation performed of the first physical platform (such as target physical platform), and in the upper method of carrying out code optimization based on incidence relation performed of the second physical platform (such as developing physical platform).
Fig. 3 illustrates the process flow diagram of the method providing incidence relation according to an embodiment of the invention.Step in this process flow diagram can perform on the first physical platform.Particularly, as shown in the figure, in step 30, obtain the performance sampled data relevant to the execution of first code, this performance sampled data comprises the information of the instruction corresponding with described first code and the information of the performance deficiency event corresponding with described instruction; In step 32, according to described performance sampled data, build instruction sequence, and determine the incidence relation between instruction sequence and performance deficiency event; And, in step 34, described incidence relation is supplied to other physical platforms, for the optimization performing second code on these other physical platforms based on described incidence relation.
Based on so provided incidence relation, just can carry out code optimization, thus improve execution performance.Fig. 4 illustrates the process flow diagram of the method for run time version optimization according to an embodiment of the invention.Step in this process flow diagram can perform on the second physical platform.Particularly, as shown in Figure 4, in step 40, obtain as Fig. 3 method the incidence relation that provides; In step 42, according to described incidence relation, determine the performance deficiency event that second code is corresponding; And in step 44, based on the performance deficiency event determined, optimize second code, thus optimize the execution performance of second code on the first physical platform.
Each step of above embodiment is described below in conjunction with object lesson.
First, in step 30, the first physical platform obtains the performance sampled data relevant to the execution of first code.First physical platform can be performance optimization for target physical platform; First code can be the arbitrary code that the first physical platform performs, and comprises the source code, intermediate code, binary code etc. of various software, application, program.As previously mentioned, existing multiple physical platform all provides performance monitoring unit, gathers for the signal indicating hardware performance event produced processor and counts.Meanwhile, the sampling thief run in OS kernel can be sampled to above-mentioned counting.In one embodiment, in order to obtain performance sampled data, in step 30, during processor performs first code, directly read sampled result in real time from above-mentioned sampling thief, sampled result is carried out converging and arranging, thus obtain performance sampled data.In other executive mode, sampling thief can periodically generate sampling daily record, and is stored among memory buffer, or sampling daily record is read from memory buffer further, writes a document, and is stored in hard disk ad-hoc location.In the case, in step 30, directly can read sampling daily record from the ad-hoc location of memory buffer or hard disk, this sampling daily record is formed as performance sampled data.
As previously mentioned, performance sampled data usually includes command information and relevant performance event.Correspondingly, instruction corresponding term of execution that the performance sampled data obtained by above step 30 comprising first code, and the performance event that these instructions cause, comprise performance deficiency event.Particularly, the performance sampled data obtained can be as shown in the example of fig. 1.But, it will be understood by those skilled in the art that the many factors such as the configuration of instruction code, performance monitoring unit and the sampling thief that the structure of content-dependent in physical platform of performance sampled data, physical platform perform.Along with the difference of these factors, the performance sampled data obtained in step 30 can comprise more and/or different command informations and performance event relative to the example of Fig. 1.
Then, based on the performance sampled data obtained, in the step 32 these sampled datas are analyzed, therefrom build instruction sequence, the concurrent rule excavating instruction sequence and cause performance deficiency, namely, determines the incidence relation between instruction sequence and performance deficiency event, make such incidence relation reflect the first physical platform hardware characteristics and with its on the code (such as, first code) that performs have nothing to do.The analysis of above-mentioned incidence relation and determine to realize in several ways.
Particularly, Fig. 5 A illustrates the step obtaining above-mentioned incidence relation according to an embodiment of the invention, namely the sub-step of step 32 in Fig. 3.In this embodiment, incidence relation is between the two obtained by the statistics occurrence number of instruction sequence and the occurrence number of performance event.Particularly, as shown in the figure, in step 3211, instruction sequence is built according to performance sampled data.As mentioned above, performance sampled data generally have recorded the information of each performed instruction according to the execution sequence of instruction, comprise instruction address, operational code etc., as shown in Figure 1.For the jump instruction not having to perform according to general sequence, performance sampled data can record source address and the destination address of this instruction.Therefore, the record order along performance sampled data is recalled, and carries out redirect if desired, just can obtain the execution route of instruction according to source address and destination address.According to such execution route, just can obtain the multiple instructions performed continuously, construct the instruction sequence be made up of multiple continual command thus.In one example in which, instruction sequence is with the content of operation of instruction, and more specifically, operational code identifies.Such as, the L (load loads) occurred continuously in the performance sampled data of Fig. 1, MVC (move, mobile), XC (or, or computing) and ST (Store stores) just can think an instruction sequence.Then, in step 3212, the occurrence number of each instruction sequence in performance sampled data is added up.Then, in step 3213, add up the occurrence number of performance deficiency event corresponding to each instruction sequence.Finally, in step 3214, based on the ratio of the occurrence number counted above, determine the incidence relation between instruction sequence and performance deficiency event.Particularly, in this step, the ratio of the occurrence number of each performance deficiency event relative to the occurrence number of instruction sequence can be determined, and by the ratio that obtains compared with predetermined threshold, according to the incidence relation between comparative result determination instruction sequence and performance deficiency.Such as, for above-mentioned L-MVC-XC-ST instruction sequence, assuming that find in step 3212, this instruction sequence has occurred 100 times altogether in performance sampled data.Then, in step 3213, finding by verifying performance sampled data, when performing the last item instruction ST in this sequence, there occurs TLBMiss event 85 times, having occurred streamline Stall state for 5 times, having occurred ICacheMiss event 2 times.So, can determine, when performing this instruction sequence, have the ratio of 85% to occur TLBMiss event in step 3214.Assuming that the threshold percentage preset is 80%, so just can determine to there is incidence relation between above-mentioned instruction sequence and the such performance deficiency event of TLBMiss.In one embodiment, the tightness degree that the degree of association characterizes incidence relation can also be introduced further.Particularly, can using the value of the ratio of above-mentioned occurrence number as the degree of association.
Visible, the embodiment of Fig. 5 A determines its incidence relation by the occurrence number of directly adding up instruction sequence and performance deficiency event.In many cases, the number of instruction sequence is very huge (especially when not limiting sequence length), makes the counting yield of above-mentioned statistic procedure not ideal enough.Therefore, according to the computational resource of reality, implementation step 32 can be carried out in different ways, obtain above-mentioned incidence relation.
In one embodiment, after the step 3212 of the occurrence number of each instruction sequence of statistics of Fig. 5 A, select the frequent instruction sequence occurred according to above-mentioned occurrence number.The instruction sequence of described frequent appearance can be the instruction sequence that occurrence number exceedes specific threshold.Then, in step 3213, the only frequent performance deficiency event corresponding to instruction sequence occurred of statistics.Like this, neglect the frequency of occurrences not high enough, thus not too representative instruction sequence, save a part of statistical computation.
In another embodiment, the performance event based on single instruction carries out preliminary screening to instruction sequence.Particularly, for each independent instruction in performance sampled data, the performance deficiency event sampling number occurred when obtaining this instruction of execution is relative to the ratio of the sampling number of this instruction.If the threshold value that this ratio presets higher than, just using this instruction as the END instruction of instruction sequence that may cause performance deficiency event.Correspondingly, from this instruction, review forward the step number of some along instruction execution path, thus obtain the instruction sequence of candidate.Such as, for the command M VC of the 6th row in Fig. 1, the sampling number of this instruction is 14 times, has wherein occurred Recycle event 5 times.Assuming that this ratio is higher than the threshold value preset, so just can assert, be the sequence likely causing Recycle event with the instruction sequence of MVC ending.Correspondingly, from this MVC, the instruction sequence that may cause Recycle of candidate just can be obtained along instruction execution path forward trace.On the other hand, if certain instruction occurs that the ratio of certain performance deficiency event is lower than above-mentioned threshold value, just can think, this instruction is unlikely the END instruction of the instruction sequence causing this kind of performance deficiency event, thus need not with this instruction for starting point is recalled.Thus, only obtain the candidate instruction sequence that those likely cause performance deficiency event, thus save part statistics and calculate.For the candidate instruction sequence obtained, statistical counting can be carried out to it similarly with Fig. 5 A embodiment, thus finally determine the incidence relation between instruction sequence and performance deficiency event.Be appreciated that above several embodiment can combine by those skilled in the art according to actual needs, produce more changeable body, obtain the incidence relation between instruction sequence and performance deficiency event.
Alternatively, with directly add up instruction sequence and performance deficiency event occurrence number mode differently, in an alternative embodiment of the invention, based on information entropy, cluster and analysis are carried out to instruction sequence, thus obtain instruction sequence and associating between performance deficiency event.Fig. 5 B illustrates the step of the determination incidence relation according to this embodiment.As shown in Figure 5 B, in this embodiment, the step obtaining incidence relation comprises: step 3221, builds instruction sequence; Step 3222, selects the instruction sequence that the frequency of occurrences is higher; Step 3223, carries out cluster and coding based on information entropy to instruction sequence; Step 3224, the statistics of bonding properties event selects the cluster having identification; Step 3225, carries out Further Division to the cluster selected; In step 3226, judge whether cluster now reaches predetermined condition, again performs step 3222-3225, until reach predetermined condition when not reaching predetermined condition.Specifically describe each step above-mentioned below.
In step 3221, from performance sampled data, obtain instruction execution path, obtain multiple instruction sequence according to instruction execution path.The step 3211 of this step and Fig. 5 A is similar, repeats no more.Then, in step 3222, the instruction sequence that the frequency of occurrences is higher is selected.Particularly, by the occurrence number of instruction sequence compared with predetermined threshold, the instruction sequence that those occurrence numbers exceed threshold value can be selected; Or, the occurrence number of instruction sequence can be sorted, go out the instruction sequence of given number according to occurrence number select progressively from high to low; The instruction sequence that other way selection frequencies of occurrences are high can also be adopted.
Then, in step 3223, based on information entropy, cluster and coding are carried out to the instruction sequence selected.Information entropy is the concept of entropy in reference thermal mechanics and the tolerance made the determinacy of information, randomness.In general, a system is chaotic, and wherein the uncertainty of variable is larger, and information entropy is larger; Otherwise a system is orderly, and information entropy is lower.Propose multiple method in prior art mathematically to carry out being similar to and estimating to information entropy.Based on the information entropy mathematically estimated, can carry out cluster to instruction sequence, after making cluster, the information entropy of the system that instruction sequence is formed is minimum, and namely quantity of information is maximum.Then, the cluster of instruction sequence is carried out " coding ", namely represent different classes with different code, thus be convenient to follow-up analysis.
Whether in a simple example, be L or MVC based on first instruction in instruction sequence, whether END instruction is that ST carries out cluster to instruction sequence.Particularly, if first of instruction sequence instruction is L or MVC, the first instruction features of this instruction sequence is labeled as 1, otherwise is 0; If END instruction is ST, the END instruction of this instruction sequence is labeled as 1, otherwise is 0.Meanwhile, if the ratio of the Stall event of END instruction place of instruction sequence is more than 20%, then Stall event is labeled as Y, otherwise is N.Thus, the form shown in Fig. 6 can be obtained.Can see, by instruction sequence is carried out cluster and coding, the concurrent rule excavating instruction sequence is more easily shown.
Then, in step 3224, the statistics of bonding properties event selects the cluster having identification.Particularly, add up the degree of association of carrying out between the cluster that marks and performance event with code, select the cluster that the degree of association is larger.Still for the form of Fig. 6, can see, the cluster being labeled as 1-1 has occurred 8 times, wherein 6 Stall events be labeled as Y.At this moment, this cluster can be selected to be further analyzed, and not consider other clusters.
Be appreciated that owing to having carried out cluster and coding to instruction sequence, we have lost the instruction sequence information of a part.Such as, owing to being L or MVC by all first instructions, END instruction is that the instruction sequence of ST is all labeled as 1-1, and we have lost other features of this cluster.For this reason, in step 3225, we carry out Further Division, recovered part loss of information to the Sequence clustering selected.Such as, to the cluster 1-1 that step 3224 is selected, being carried out Further Division, is that the instruction sequence of L is divided into one group by first instruction, is that the instruction of MVC is divided into another group by first instruction.For each group instruction sequence, in step 3226, judge whether this group instruction sequence reaches predetermined condition, repeats step 3222-3224 when not reaching predetermined condition, again carries out cluster and selection, until reach predetermined condition.Above-mentioned predetermined condition can set according to the factor such as computational resource, required precision, can comprise, and the degree of association that the quantity of such as, instruction sequence often in group is less than specific threshold, instruction sequence and performance event reaches specific threshold, etc.Thus, the mode divided again by first cluster, progressively extracts the information of identification from the instruction sequence of enormous amount, obtains the incidence relation between instruction sequence and performance deficiency event.
Although more than describe several structure instruction sequence in conjunction with object lesson, and determine the embodiment of the incidence relation between instruction sequence and performance deficiency event, it will be understood by those skilled in the art that above embodiment is only exemplary and nonrestrictive.On the basis of above example, those skilled in the art can make further amendment and variant, utilize similar or other mode to extract incidence relation between instruction sequence and performance event.Such amendment and variant also should be included within scope.
Fig. 7 illustrates the schematic diagram of the incidence relation obtained according to one embodiment of the invention.In the example of fig. 7, incidence relation illustrates in table form.In this form, each entry illustrates associating between an instruction sequence with a performance deficiency event.Such as, according to the first row of form, { BERC}'s instruction sequence is associated with performance deficiency event Stall, this means for BNORC, (LTGR or LH), performs this instruction sequence continuously and streamline can be caused to occur Stall state.In a further embodiment, the degree of association between instruction sequence and performance deficiency event can also be shown, namely, perform the probability that this instruction sequence can cause occurring performance deficiency.Be appreciated that incidence relation also can be stored by extended formatting and show, and be not limited to the example of Fig. 7.
The incidence relation of the performance sampled data shown in comparison diagram 1 and Fig. 7 example can be seen, the information of each instruction is directly illustrated (such as in performance sampled data, instruction address, execution order, operational code, operand, hits etc.), therefore, instruction execution path can be obtained by performance sampled data, further, likely by understanding instruction execution path (such as, utilize disassemblers) obtain the code information that physical platform performs, the such as information of aforesaid first code.But shown in incidence relation is associating between instruction sequence with performance deficiency event, and this association obtains based on the statistics of instruction sequence and various performance event, wherein do not relate to the concrete execution information of each instruction.Therefore, by the incidence relation between instruction sequence and performance deficiency event, the information of the code that physical platform performs can not be known.That is, above-mentioned incidence relation is only relevant to the feature of physical platform, and with its on the code that performs have nothing to do, thus can not reveal code information.On the other hand, in many cases, performance deficiency event be not only caused by the execution of single instruction, but continuously perform the result of multiple instruction.Therefore, the incidence relation between the instruction sequence that multiple instructions of excavating out execution are continuously formed and performance deficiency event more can reflect the rule producing performance deficiency by constitutionally, also reflects the feature of physical platform better.
The feature of incidence relation in view of the above, above-mentioned incidence relation is suitable as the reference criterion of carrying out code optimization for physical platform very much.Therefore, then, in step 34, such incidence relation is supplied to other physical platforms, for the optimization performing second code on these other physical platforms based on described incidence relation, described second code can be different from the first code in step 30.Particularly, in one embodiment, the incidence relation determined above can be stored in this locality, and give other physical platforms specific to the access rights of this incidence relation file.Or, in another embodiment, in step 34, the incidence relation determined directly can be sent to other physical platforms above-mentioned.In another embodiment, the incidence relation determined can also be transferred to an incidence relation shared platform, make other physical platforms can arrive this shared platform and obtain incidence relation.
There is provided on the basis of incidence relation at the first physical platform according to the method for Fig. 3, at other physical platforms, the second physical platform such as, can obtain described incidence relation, and utilize this incidence relation to carry out code optimization, thus realize cross-platform performance optimization, as shown in the step of Fig. 4.
Particularly, in step 40, obtain above-mentioned incidence relation at the second physical platform.In one embodiment, the incidence relation provided is stored on the first physical platform.At this moment, in step 40, send request by the second physical platform directly to the first physical platform, the incidence relation produced is read in request.After the authorization response of acquisition first physical platform, the second physical platform just can read from the first physical platform the incidence relation produced for the first physical platform.In another embodiment, the incidence relation from the first physical platform is stored in incidence relation shared platform, and is added with the label of the first physical platform.In the case, in step 40, the second physical platform reads for the incidence relation of the first physical platform from shared platform.
Be appreciated that the transmission of incidence relation between each physical platform by various known realizing with the communication mode likely adopted future, can comprise and utilize wireless, wired, the various medium of optical cable, RF etc., pass through FTP, the transmission that the various agreement such as HTTP, POP3, SMTP is carried out.
Obtain at the second physical platform on the basis of the incidence relation produced for the first physical platform, just can at the enterprising hand-manipulating of needle of the second physical platform to the code optimization of the first physical platform.Particularly, in step 42, according to described incidence relation, determine the performance deficiency event that second code is corresponding; And in step 44, based on the performance deficiency event determined, optimize second code, thus the performance deficiency event that elimination or reduction second code may cause.Above-mentioned second code is the code needing to be performed on the first physical platform, is also the code needing to be optimized.
Fig. 8 illustrates the sub-step of step 42 according to an embodiment of the invention, namely determines the concrete steps of performance deficiency event.Particularly, as shown in Figure 8, in order to determine the performance deficiency event that second code is corresponding, first in step 421, scanning second code, generates the instruction sequence corresponding with second code.Then, in step 422, the instruction sequence of generation is mated with the incidence relation of acquisition, namely, in the incidence relation obtained, search whether there is corresponding instruction sequence.If find the instruction sequence of coupling, so in step 423, according to the incidence relation between instruction sequence and performance deficiency event, determine the performance deficiency event corresponding to instruction sequence of mating.Be appreciated that the performance deficiency event determined in step 423 is the performance deficiency event supposing that current second code likely occurs when performing on the first physical platform.
Based on the performance deficiency as above determined or predict, in the step 44 of Fig. 4, second code is optimized, to eliminate and/or to reduce performance deficiency event, thus optimizes the execution performance of second code on the first physical platform.The code optimization mode of step 44 can utilize the optimal way usually adopted in prior art.Such as, in one embodiment, suitably can adjust the execution sequence of second code, thus reduce the instruction sequence that may cause performance deficiency event.Such as, second code comprises instruction sequence A, and for carrying out continued operation to multiple operand, but this instruction sequence easily causes Stall event.Now, if there is the independent instruction B not too relevant to sequential after instruction sequence A, so instruction B can be shifted to an earlier date and be inserted in the middle of instruction sequence A, interrupt the sequence A likely causing defect.In another embodiment, code optimization is carried out by adding extracode.For the high-speed caches such as ICacheMiss, DCacheMiss, TLBMiss not hit event, when scanning the instruction sequence causing these events, the instruction code that some are extra can be added before these instructions.These extra instruction codes are used for notification processor and are prefetched in high-speed cache by the operand that next may use, director data etc., avoid thus occurring high-speed cache not hit event when performing ensuing instruction sequence.In addition, those skilled in the art as required, can carry out other forms of amendment and optimization to second code, thus second code efficiently can be performed on the first physical platform.
Thus, according to the method for the embodiment of Fig. 4, based on incidence relation, second code is optimized, improves the execution performance of second code on the first physical platform.
In embodiment described above, first obtain the incidence relation between instruction sequence and performance deficiency event at the first physical platform, then on the second platform, optimize second code based on above-mentioned incidence relation, thus realize cross-platform performance optimization.As previously mentioned, incidence relation between instruction sequence and performance deficiency event does not relate to concrete instruction and code, therefore can not reveal the code information that the first platform performs, such incidence relation is delivered to the risk that the second physical platform also can not produce secure context.Meanwhile, above-mentioned incidence relation more constitutionally reflects the hardware characteristics of the first physical platform, therefore, based on incidence relation, can obtain good effect of optimization to there being pending code to be optimized.So, if technician wants the software application developed for target platform optimization, he need not perform this software application at target platform as prior art, but can directly be optimized the code of software application in the development platform of oneself, thus make the process of performance optimization more convenient and efficient.
Based on same inventive concept, present invention also offers the system of performance optimization, this system comprises the device providing the device of incidence relation to optimize with the run time version be positioned on the second physical platform be positioned on the first physical platform.Fig. 9 A illustrates the schematic block diagram of the device providing incidence relation according to an embodiment of the invention.As shown in Figure 9 A, the device of incidence relation that provides of the present embodiment comprises: sampled data acquiring unit 911, be configured to obtain the performance sampled data relevant to the execution of first code, this performance sampled data comprises the information of the instruction corresponding with described first code and the information of the performance deficiency event corresponding with described instruction; Incidence relation determining unit 912, is configured to, according to described performance sampled data, build at least one instruction sequence, and determines described incidence relation between at least one instruction sequence and performance deficiency event; And incidence relation providing unit 913, be configured to described incidence relation to be supplied to other physical platforms, for the optimization performing second code on these other physical platforms based on described incidence relation.Fig. 9 B illustrates the schematic block diagram of the device of run time version optimization according to an embodiment of the invention.As shown in Figure 9 B, the device of the run time version optimization of the present embodiment comprises: incidence relation acquiring unit 921, the incidence relation that the device being configured to obtain Fig. 9 A provides; Defect determining unit 922, is configured to according to described incidence relation, determines the performance deficiency event that second code is corresponding; And code optimization unit 923, being configured to the performance deficiency event based on determining, optimizing second code.
Particularly, the performance sampled data that records when the performance monitor of the first physical platform obtains and performs first code of sampled data acquiring unit 911.The performance sampled data obtained as shown in the example of fig. 1, can also comprise more and/or different command informations and performance event.Based on the performance sampled data obtained, incidence relation determining unit 912, to these data analysis, therefrom builds instruction sequence, the concurrent rule excavating instruction sequence and cause performance deficiency, namely, the incidence relation between instruction sequence and performance deficiency event is determined.In one embodiment, incidence relation determining unit 912 obtains incidence relation between the two by the statistics occurrence number of instruction sequence and the occurrence number of performance event.In another embodiment, incidence relation determining unit 912 is screened instruction sequence further, thus saves a part of statistical computation.In another embodiment, incidence relation determining unit 912 carries out cluster and analysis based on information entropy to instruction sequence, thus obtains instruction sequence and associating between performance deficiency event.The incidence relation obtained can be routine as shown in Figure 7, also can be stored by extended formatting and show.Further, above-mentioned incidence relation is supplied to other physical platforms by incidence relation providing unit 913 in several ways, such as the second physical platform, optimizes based on incidence relation run time version on these other physical platforms.
On this basis, the incidence relation acquiring unit 921 in the second physical platform reads above-mentioned incidence relation by various communication mode.Then, instruction corresponding for second code and described incidence relation carry out contrasting and mating by defect determining unit 922, determine the performance deficiency event that second code is corresponding.So code optimization unit 923 based on the performance deficiency event determined, can optimize second code, eliminates or reduces the performance deficiency event that second code may cause, thus optimize the execution performance of second code on the first physical platform.
For the concrete executive mode of above unit, the detailed description can carried out with reference to associated methods flow process and object lesson before, does not repeat them here.
Above-described performance optimization method and system can utilize computing system to realize.Figure 10 shows the block diagram of the exemplary computer system 100 be suitable for for realizing embodiment of the present invention.As shown, computer system 100 can comprise: CPU (CPU (central processing unit)) 101, RAM (random access memory) 102, ROM (ROM (read-only memory)) 103, system bus 104, hard disk controller 105, keyboard controller 106, serial interface controller 107, parallel interface controller 108, display controller 109, hard disk 110, keyboard 111, serial peripheral equipment 112, concurrent peripheral equipment 113 and display 114.In such devices, what be coupled with system bus 104 has CPU101, RAM102, ROM103, hard disk controller 105, keyboard controller 106, serialization controller 107, parallel controller 108 and display controller 109.Hard disk 110 is coupled with hard disk controller 105, keyboard 111 is coupled with keyboard controller 106, serial peripheral equipment 112 is coupled with serial interface controller 107, and concurrent peripheral equipment 113 is coupled with parallel interface controller 108, and display 114 is coupled with display controller 109.Should be appreciated that the structured flowchart described in Figure 10 illustrates just to the object of example, instead of limitation of the scope of the invention.In some cases, can increase or reduce some equipment as the case may be.
Process flow diagram in accompanying drawing and block diagram, illustrate according to the architectural framework in the cards of the system of various embodiments of the invention, method and computer program product, function and operation.In this, each square frame in process flow diagram or block diagram can represent a part for module, program segment or a code, and a part for described module, program segment or code comprises one or more executable instruction for realizing the logic function specified.Also it should be noted that at some as in the realization of replacing, the function marked in square frame also can be different from occurring in sequence of marking in accompanying drawing.Such as, in fact the square frame that two adjoining lands represent can perform substantially concurrently, and they also can perform by contrary order sometimes, and this determines according to involved function.Also it should be noted that, the combination of the square frame in each square frame in block diagram and/or process flow diagram and block diagram and/or process flow diagram, can realize by the special hardware based system of the function put rules into practice or operation, or can realize with the combination of specialized hardware and computer instruction.
Although below in conjunction with specific embodiments, be described in detail method of the present invention, system and unit, the present invention is not limited to this.Those of ordinary skill in the art can carry out multiple conversion, substitutions and modifications and without departing from the spirit and scope of the present invention to the present invention under instructions instruction.Should be appreciated that, all such changes, replacement, amendment still fall within protection scope of the present invention.Protection scope of the present invention is limited by claims.

Claims (20)

1. provide incidence relation for a method for code optimization, comprising:
Obtain the performance sampled data relevant to the execution of first code, this performance sampled data comprises the information of the instruction corresponding with described first code and the information of the performance deficiency event corresponding with described instruction;
According to described performance sampled data, build at least one instruction sequence, and according at least one in the occurrence number of at least one instruction sequence described or the frequency of occurrences, determine described incidence relation between at least one instruction sequence and performance deficiency event; And
Described incidence relation is supplied to other physical platforms, for the optimization performing second code on these other physical platforms based on described incidence relation.
2. the method for claim 1, wherein said performance sampled data is formed based on the sampling daily record produced when performing first code.
3. the method for claim 1, wherein saidly determine that the incidence relation between at least one instruction sequence and performance deficiency event comprises:
The occurrence number of statistics at least one instruction sequence described;
The occurrence number of the performance deficiency event that statistics at least one instruction sequence described is corresponding; And
Based on the above occurrence number of instruction sequence of statistics and the ratio of the occurrence number of performance deficiency event, determine the incidence relation between at least one instruction sequence and performance deficiency event.
4. method as claimed in claim 3, also comprise: select the frequent instruction sequence occurred according to the occurrence number of at least one instruction sequence described, and the occurrence number of the performance deficiency event that at least one instruction sequence of described statistics is corresponding is specially, only add up the occurrence number of the performance deficiency event corresponding to instruction sequence of described frequent appearance.
5. the method for claim 1, wherein saidly determine that the incidence relation between at least one instruction sequence and performance deficiency event comprises:
Select the instruction sequence that the frequency of occurrences is higher;
Based on information entropy, cluster is carried out to instruction sequence;
The statistics of bonding properties defect event selects the cluster having identification; And
Further Division is carried out, until reach predetermined condition to the Sequence clustering selected.
6. method as claimed in claim 5, wherein said predetermined condition comprise following at least one item: the degree of association that the quantity of the instruction sequence in the group divided is less than the first specific threshold, instruction sequence and performance deficiency event reaches the second specific threshold.
7. a method for run time version optimization, comprising:
The incidence relation provided according to either method in claim 1-6 is provided; And
According to described incidence relation, determine the performance deficiency event that second code is corresponding;
Based on the performance deficiency event determined, optimize second code.
8. method as claimed in claim 7, wherein said acquisition incidence relation comprises: obtain described incidence relation via incidence relation shared platform.
9. method as claimed in claim 7, wherein determine that performance deficiency event corresponding to second code comprises:
Scanning second code, generates the instruction sequence corresponding with second code;
The instruction sequence of generation is mated with the incidence relation of acquisition;
According to described incidence relation, determine the performance deficiency event corresponding to instruction sequence of mating.
10. method as claimed in claim 7, the wherein said optimization second code at least one item comprised is in the following manner eliminated or is reduced performance deficiency event:
The execution sequence of adjustment second code;
Extra instruction code is added to second code.
11. 1 kinds provide incidence relation for the device of code optimization, comprising:
Sampled data acquiring unit, be configured to obtain the performance sampled data relevant to the execution of first code, this performance sampled data comprises the information of the instruction corresponding with described first code and the information of the performance deficiency event corresponding with described instruction;
Incidence relation determining unit, be configured to according to described performance sampled data, build at least one instruction sequence, and according at least one in the occurrence number of at least one instruction sequence described or the frequency of occurrences, determine described incidence relation between at least one instruction sequence and performance deficiency event; And
Incidence relation providing unit, is configured to described incidence relation to be supplied to other physical platforms, for the optimization performing second code on these other physical platforms based on described incidence relation.
12. devices as claimed in claim 11, wherein said performance sampled data is formed based on the sampling daily record produced when performing first code.
13. devices as claimed in claim 11, wherein said incidence relation determining unit is configured to:
The occurrence number of statistics at least one instruction sequence described;
The occurrence number of the performance deficiency event that statistics at least one instruction sequence described is corresponding; And
Based on the above occurrence number of instruction sequence of statistics and the ratio of the occurrence number of performance deficiency event, determine the incidence relation between at least one instruction sequence and performance deficiency event.
14. devices as claimed in claim 13, wherein said incidence relation determining unit is also configured to: select the frequent instruction sequence occurred according to the occurrence number of at least one instruction sequence described, and the occurrence number of the performance deficiency event that at least one instruction sequence of described statistics is corresponding is specially, only add up the occurrence number of the performance deficiency event corresponding to instruction sequence of described frequent appearance.
15. devices as claimed in claim 11, wherein said incidence relation determining unit is configured to:
Select the instruction sequence that the frequency of occurrences is higher;
Based on information entropy, cluster is carried out to instruction sequence;
The statistics of bonding properties defect event selects the cluster having identification; And
Further Division is carried out, until reach predetermined condition to the Sequence clustering selected.
16. devices as claimed in claim 15, wherein said predetermined condition comprise following at least one item: the degree of association that the quantity of the instruction sequence in the group divided is less than the first specific threshold, instruction sequence and performance deficiency event reaches the second specific threshold.
The device that 17. 1 kinds of run time versions are optimized, comprising:
Incidence relation acquiring unit, be configured to obtain device according to any one of claim 11-16 the incidence relation that provides; And
Defect determining unit, is configured to according to described incidence relation, determines the performance deficiency event that second code is corresponding; And
Code optimization unit, is configured to the performance deficiency event based on determining, optimizes second code.
18. devices as claimed in claim 17, wherein said incidence relation acquiring unit is configured to: obtain described incidence relation via incidence relation shared platform.
19. devices as claimed in claim 17, wherein said defect determining unit is configured to:
Scanning second code, generates the instruction sequence corresponding with second code;
The instruction sequence of generation is mated with the incidence relation of acquisition;
According to described incidence relation, determine the performance deficiency event corresponding to instruction sequence of mating.
20. devices as claimed in claim 17, wherein said code optimization cell location be in the following manner at least one item eliminate or reduce performance deficiency event:
The execution sequence of adjustment second code;
Extra instruction code is added to second code.
CN201110252353.7A 2011-08-30 2011-08-30 There is provided incidence relation and the method and apparatus of run time version optimization Expired - Fee Related CN102955712B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201110252353.7A CN102955712B (en) 2011-08-30 2011-08-30 There is provided incidence relation and the method and apparatus of run time version optimization
DE201210214672 DE102012214672A1 (en) 2011-08-30 2012-08-17 Providing a mapping relation and performing code optimization
GB201215035A GB2494268A (en) 2011-08-30 2012-08-23 Performing code optimization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110252353.7A CN102955712B (en) 2011-08-30 2011-08-30 There is provided incidence relation and the method and apparatus of run time version optimization

Publications (2)

Publication Number Publication Date
CN102955712A CN102955712A (en) 2013-03-06
CN102955712B true CN102955712B (en) 2016-02-03

Family

ID=47045287

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110252353.7A Expired - Fee Related CN102955712B (en) 2011-08-30 2011-08-30 There is provided incidence relation and the method and apparatus of run time version optimization

Country Status (3)

Country Link
CN (1) CN102955712B (en)
DE (1) DE102012214672A1 (en)
GB (1) GB2494268A (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107808098B (en) 2017-09-07 2020-08-21 阿里巴巴集团控股有限公司 Model safety detection method and device and electronic equipment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039910B2 (en) * 2001-11-28 2006-05-02 Sun Microsystems, Inc. Technique for associating execution characteristics with instructions or operations of program code
CN101727335A (en) * 2008-10-31 2010-06-09 国际商业机器公司 Installation method for binary code program and system
CN102099786A (en) * 2008-07-22 2011-06-15 松下电器产业株式会社 Program optimization method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002024052A (en) * 2000-07-03 2002-01-25 Matsushita Electric Ind Co Ltd Error reproduction test method of computer peripheral equipment
US8640114B2 (en) * 2006-09-07 2014-01-28 Oracle America, Inc. Method and apparatus for specification and application of a user-specified filter in a data space profiler
US20070006037A1 (en) * 2005-06-29 2007-01-04 Microsoft Corporation Automated test case result analyzer
US8621468B2 (en) * 2007-04-26 2013-12-31 Microsoft Corporation Multi core optimizations on a binary using static and run time analysis
US20090055636A1 (en) * 2007-08-22 2009-02-26 Heisig Stephen J Method for generating and applying a model to predict hardware performance hazards in a machine instruction sequence
US20090113403A1 (en) * 2007-09-27 2009-04-30 Microsoft Corporation Replacing no operations with auxiliary code

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039910B2 (en) * 2001-11-28 2006-05-02 Sun Microsystems, Inc. Technique for associating execution characteristics with instructions or operations of program code
CN102099786A (en) * 2008-07-22 2011-06-15 松下电器产业株式会社 Program optimization method
CN101727335A (en) * 2008-10-31 2010-06-09 国际商业机器公司 Installation method for binary code program and system

Also Published As

Publication number Publication date
DE102012214672A1 (en) 2013-02-28
GB2494268A (en) 2013-03-06
CN102955712A (en) 2013-03-06
GB201215035D0 (en) 2012-10-10

Similar Documents

Publication Publication Date Title
US20200166900A1 (en) Optimization device and control method of optimization device
JP6823265B2 (en) Analytical instruments, analytical systems, analytical methods and analytical programs
CN108984553B (en) Caching method and device
JP5373870B2 (en) Prediction device, prediction method, and program
WO2014183514A1 (en) Method, device, and computer storage medium for hierarchical storage
CN107145446B (en) Application program APP test method, device and medium
CN102025559A (en) Method for detecting and processing dead links on basis of classification, and network equipment
US10540360B2 (en) Identifying relationship instances between entities
CN102789377B (en) The method and apparatus of processing instruction grouping information
JP2020500368A (en) Data prefetching method, apparatus, and system
CN112256599A (en) Data prefetching method and device and storage device
US20120173498A1 (en) Verifying Correctness of a Database System
US10599432B2 (en) Computer system performance analyzer
CN102955712B (en) There is provided incidence relation and the method and apparatus of run time version optimization
US10437806B2 (en) Database management method and information processing apparatus
CN109471862A (en) Data processing method and device, electronic equipment, storage medium
Stratis et al. Speeding up test execution with increased cache locality
US9575868B2 (en) Processor stressmarks generation
US10120666B2 (en) Conditional branch instruction compaction for regional code size reduction
US20080109435A1 (en) Determining Sort Order by Traffic Volume
US9104392B1 (en) Multitenant monitoring system storing monitoring data supporting flexible pivot querying
JP2016224814A (en) Performance information generation program, performance information generation method and information processor
CN114461590A (en) Database file page prefetching method and device based on association rule
Esteves et al. Palpatine: mining frequent sequences for data prefetching in NoSQL distributed key-value stores
US8943177B1 (en) Modifying a computer program configuration based on variable-bin histograms

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: 20160203

Termination date: 20200830

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