CN106227671B - Program analysis of running performance method and device - Google Patents
Program analysis of running performance method and device Download PDFInfo
- Publication number
- CN106227671B CN106227671B CN201610644861.2A CN201610644861A CN106227671B CN 106227671 B CN106227671 B CN 106227671B CN 201610644861 A CN201610644861 A CN 201610644861A CN 106227671 B CN106227671 B CN 106227671B
- Authority
- CN
- China
- Prior art keywords
- function
- thread
- run
- stack frame
- current stack
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
The disclosure is directed to a kind of program analysis of running performance method and devices.The program analysis of running performance method includes:Step 1 will run the thread interrupt that run mode is in the process to be analyzed in program;Step 2 is currently in function call when the thread, obtains the function name for the function that current stack frame is run;Step 3 judges whether the function that the current stack frame is run is the first virtual machine entrance function according to the function name of the function;Step 4, when the function that the current stack frame is run be the first virtual machine entrance function when, record the first kind function call information that the current stack frame in the operation program is run.The performance evaluation to the program of operation may be implemented in the disclosure.
Description
Technical field
This disclosure relates to field of computer technology, in particular to a kind of program analysis of running performance method and device.
Background technology
It under Linux environment, for the project procedure of operation, monitors its performance and is very important, because of the property of program
The user experience of product can be directly affected.But be which function has consumed most of execution time in program actually, lead to
It is not often to be readily seen very much, needs by performance analysis tool.Performance analysis tool is primarily used to analysis program
Where are main exhaustion point and hot spot, and where testing out performance and the bottleneck of program, basis is provided for the optimization of program.Specific aim
Energy analysis result can carry out effective specific aim optimization to program, so that its is improved operational efficiency, directly improve the use of user
Experience.
By taking common programming language C/C++ and Python as an example, common C/C++ performance analysis tools include perf,
Gprof, oprofile etc., common Python performance analysis tools include cProfile, hotshot etc..It is simple below to illustrate
Currently used performance analysis tool and its principle.
Perf is the Properties Analysis tool being built in linux kernel source code tree, is usually used in finding performance bottleneck and positioning
Hot spot code.Its principle is sampled based on event, based on acquisition performance event.It supports to be directed to processor correlated performance
The Properties Analysis of index and operating system related performance indicators.
Gprof is also used to the program Accurate Analysis performance bottleneck in Linux platform, it can accurately provide function
The called time and number, and provide function calling relationship.It is corresponding by being added when compiling and chain program
Option adds a specific letter in a kind of each functions of Gcc (GNU C Com piler, compiler) in a program
Number.When function in caller, this specific function can be all called, it is relevant to save all and functions
Allocating time, the useful information of call number etc..
OProfile is a kind of performance evaluation mechanism that linux kernel is supported, it is established in clock interrupt processing inlet
Monitoring point records the context scene being interrupted.
CProfile is the expanded application of Isprof realized with C language, and operation expense is more reasonable, is suitble to analysis operation
Time longer program.It can only analyze Python code, and need embedded code, and additional tool is needed to check in detail
Thin result.
Hotshot is equally for analyzing Python code, and most of realized with C, reduces performance point
Operation expense when analysis, but huge log is will produce, analysis is also slow.Hotshot does not support the journey of multithreading
Sequence.
It there is no tool that can analyze the performance of C/C++ and Python simultaneously, and provide detailed analysis result.And current
Performance analysis tool is generally required through specified compiling parameter, and relevant parameter is either added before activation or modification code is embedding
Enter relevant sentence, performance supervision is carried out when program is run to realize.
It should be noted that information is only used for reinforcing the reason to the background of the disclosure disclosed in above-mentioned background technology part
Solution, therefore may include the information not constituted to the prior art known to persons of ordinary skill in the art.
Invention content
For subproblem in the prior art or whole issue, the disclosure provides a kind of program analysis of running performance side
Method and device, for realizing the monitoring and analysis of operation program feature.
According to one aspect of the disclosure, a kind of program analysis of running performance method is provided, including:Step 1 will run journey
The thread interrupt of run mode is in process to be analyzed in sequence;Step 2, when the thread is currently in function call, obtain
Take the function name for the function that current stack frame run;Step 3 judges that the current stack frame is transported according to the function name of the function
Whether capable function is the first virtual machine entrance function;Step 4, the function run when the current stack frame are described first empty
When quasi- machine entrance function, the first kind function call information that the current stack frame in the operation program is run is recorded.
In a kind of exemplary embodiment of the disclosure, further include:Step 5, the function run when the current stack frame
When not being the first virtual machine entrance function, the second class function that the current stack frame in the operation program is run is recorded
Recalls information.
In a kind of exemplary embodiment of the disclosure, further include:Step 6 is switched to a upper stack from the current stack frame
Frame traverses all stack frames of the thread according to the step 2-5, according to the first kind recorded in the step 4 and 5 and the second class
Function call information counts the first kind and the second class function recalls information in the operation program.
In a kind of exemplary embodiment of the disclosure, further include after the step 1:Judging the thread is currently
In the no calling in system;When the thread be in system call in, be recorded as system calling;After being spaced preset time, return to
The step 1 interrupts the thread of next run mode in the process to be analyzed.
In a kind of exemplary embodiment of the disclosure, the step 1 includes:According to process ID, obtain described to be analyzed
The thread that process is included;Using the first parameter in the first system call function, the thread is tracked;According to the Thread Id
In mode field obtain the state of the thread, and the thread of run mode is marked;It is called using the first system
The second parameter in function, the thread of interrupt operation state.
In a kind of exemplary embodiment of the disclosure, further include:Centering is broken successful thread, and in the first library is utilized
The initialization that one function is analyzed into broker's storehouse frame.
In a kind of exemplary embodiment of the disclosure, the step 2 includes:Using the second function in the first library, obtain
Take the reorganization function name for the function that the current stack frame run;It is adapted using described in the third function pair under the first NameSpace
Function name carries out deciphering the function name for obtaining the function.
In a kind of exemplary embodiment of the disclosure, the step 4 includes:When the function that the current stack frame is run
For the first virtual machine entrance function when, using the 4th function in the first library, obtain the first pointer of the current stack frame;
According to the first object's position of first needle locating to the current stack frame;According to first object's position from memory
Read the first object;The corresponding first kind function name of the current stack frame and tool are obtained according to first object read
The line number that body is gone to.
In a kind of exemplary embodiment of the disclosure, the statistics of first kind function call information includes in the step 6
Both of which:First mode is used to count the recalls information of each first class function itself;Second module is used to count
Each first class function include itself inside and all subfunctions recalls information.
In a kind of exemplary embodiment of the disclosure, the first kind and the second class function recalls information include function tune
With number and/or function call frequency and/or function calling relationship.
In a kind of exemplary embodiment of the disclosure, further include:Adjustment parameter is set, and the adjustment parameter is for being arranged
It sample frequency and/or the Refresh Data frequency and/or is analyzed for the given thread in the process to be analyzed.
According to one aspect of the disclosure, a kind of program analysis of running performance device is provided, including:Interrupt module is used
In will run in the process to be analyzed in program be in run mode thread interrupt;Function name acquisition module is used for when described
Thread is currently in function call, obtains the function name for the function that current stack frame is run;First judgment module, is used for root
Judge whether the function that the current stack frame is run is the first virtual machine entrance function according to the function name of the function;First note
Module is recorded, is used to, when the function that the current stack frame is run is the first virtual machine entrance function, record the operation
The first kind function call information that the current stack frame in program is run.
In a kind of exemplary embodiment of the disclosure, further include:Second logging modle is used to work as the current stack frame
When the function run is not the first virtual machine entrance function, the current stack frame recorded in the operation program is run
The second class function recalls information.
In a kind of exemplary embodiment of the disclosure, further include:Statistical module is used to switch from the current stack frame
To upper stack frame, the function name acquisition module, first judgment module, first logging modle and described second are called
Logging modle traverses all stack frames of the thread, first recorded according to first logging modle and second logging modle
Class and the second class function recalls information count the first kind and the second class function recalls information in the operation program.
In a kind of exemplary embodiment of the disclosure, further include:Second judgment module is used to judge that the thread to be worked as
It is preceding whether to be in system calling;Third logging modle is used to be in system calling when the thread, is recorded as system tune
With;Calling module after being used to be spaced preset time, calls the interrupt module to interrupt next fortune in the process to be analyzed
The thread of row state.
In program analysis of running performance method and device in a kind of embodiment of the disclosure, letter is called using the first system
The function in parameter and the first library in number, the C/C++ stacks frame of program and Python stack frames when can analyze operation simultaneously.
It should be understood that above general description and following detailed description is only exemplary and explanatory, not
The disclosure can be limited.
Description of the drawings
The drawings herein are incorporated into the specification and forms part of this specification, and shows the implementation for meeting the disclosure
Example, and together with specification for explaining the principles of this disclosure.It should be evident that the accompanying drawings in the following description is only the disclosure
Some embodiments for those of ordinary skill in the art without creative efforts, can also basis
These attached drawings obtain other attached drawings.
Fig. 1 schematically shows a kind of flow chart of program analysis of running performance method in disclosure exemplary embodiment.
Fig. 2 schematically shows the schematic diagram of the stack frame layout of the function call process formation of 32 systems.
Fig. 3 schematically shows a kind of stream of disclosure exemplary embodiment Program analysis of running performance method and step S11
Cheng Tu.
Fig. 4 schematically shows a kind of stream of disclosure exemplary embodiment Program analysis of running performance method and step S14
Cheng Tu.
Fig. 5 schematically shows the flow chart of another program analysis of running performance method in disclosure exemplary embodiment.
Fig. 6 schematically shows the C/C++ function calls of disclosure exemplary embodiment Program analysis of running performance method
The statistical chart of information.
Fig. 7 schematically shows the interior of the Python functions of disclosure exemplary embodiment Program analysis of running performance method
The statistical chart of portion's pattern.
Fig. 8 schematically shows the tired of the Python functions of disclosure exemplary embodiment Program analysis of running performance method
The statistical chart of product module formula.
Fig. 9 schematically shows the Python function calls of disclosure exemplary embodiment Program analysis of running performance method
The statistical chart of relationship.
Figure 10 schematically shows a kind of block diagram of program analysis of running performance device in disclosure exemplary embodiment.
Specific implementation mode
Example embodiment is described more fully with reference to the drawings.However, example embodiment can be with a variety of shapes
Formula is implemented, and is not understood as limited to example set forth herein;On the contrary, thesing embodiments are provided so that the disclosure will more
Fully and completely, and by the design of example embodiment comprehensively it is communicated to those skilled in the art.Described feature, knot
Structure or characteristic can be in any suitable manner incorporated in one or more embodiments.In the following description, it provides perhaps
More details fully understand embodiment of the present disclosure to provide.It will be appreciated, however, by one skilled in the art that can
It is omitted with technical solution of the disclosure one or more in the specific detail, or others side may be used
Method, constituent element, device, step etc..In other cases, be not shown in detail or describe known solution to avoid a presumptuous guest usurps the role of the host and
So that all aspects of this disclosure thicken.
In addition, attached drawing is only the schematic illustrations of the disclosure, it is not necessarily drawn to scale.Identical attached drawing mark in figure
Note indicates same or similar part, thus will omit repetition thereof.Some block diagrams shown in attached drawing are work(
Energy entity, not necessarily must be corresponding with physically or logically independent entity.Software form may be used to realize these work(
Energy entity, or these functional entitys are realized in one or more hardware modules or integrated circuit, or at heterogeneous networks and/or place
These functional entitys are realized in reason device device and/or microcontroller device.
Consider Fig. 1 to Fig. 4.Fig. 1 schematically shows a kind of program runnability point in disclosure exemplary embodiment
The flow chart of analysis method.
The embodiment of the present invention develops a completely new program analysis of running performance tool, and solving at present can be with without tool
The problem of analyzing C/C++ and Python performances simultaneously.As shown in Figure 1, in step s 11, by run in program it is to be analyzed into
The thread interrupt of run mode is in journey.
Fig. 3 schematically shows a kind of flow chart of the step S11.As shown in figure 3, in step S111, according to process
(Process Identification, progress recognizing number, that is, Process identifier often open a journey in operating system to ID
Sequence can all create a process ID, referred to as PID), obtain the thread that the process to be analyzed is included.
For example, user provides process ID, all threads that the process is included are obtained under/proc/PID/task first
(all threads of analysis process are given tacit consent in the embodiment of the present invention can also only analyze some specified in other embodiments
Or certain several thread).
In step S112, using the first parameter in the first system call function, the thread is tracked.
In the exemplary embodiment, System V AMD64ABI calling conventions are followed with other for (SuSE) Linux OS
Operating system, illustrated by taking linux system as an example below.The first system call function is called for ptrace systems
Function, first parameter are the PTRACE_SEIZE parameters in the ptrace systems call function, that is, utilize ptrace systems
PTRACE_SEIZE parameters in call function of uniting on carry (attach) to all threads, can't stop thread at this time
Operation, and track all threads.If the program analysis of running performance method is applied to other operating systems, described the
One system call function and its first parameter can also be that by the other systems call function of similar track thread function
And its parameter, the goal of the invention of the present invention is not construed as limiting herein.
In step S113, according to the mode field acquisition in the Thread Id (thread ID, referred to as TID)
The state of thread, and the thread of run mode is marked.
In the exemplary embodiment, the mode field is state fields.
For example, analyze all Thread Ids, according to the state field in/proc/PID/task/TID/status
The state of current thread is obtained, if thread is that (dormant state corresponding field is State to operation (running) state:S
(sleeping), run mode is State:R (running)), then it is marked accordingly.
Wherein, it can be the thread for being marked as the 1st run mode that the thread to run mode, which is marked, the 2nd
The thread of a run mode, until the thread of n-th of run mode.When there are the threads of multiple (two or more) run modes
When, the thread for analyzing all run modes for including in the process to be analyzed in order can be set, can also designated analysis this wait for
The thread of some or certain several run modes in analysis process.In one embodiment, acquiescence is set be analysis this wait for point
The thread for all run modes for including in analysis process.In another embodiment, an adjustment parameter can be set, be somebody's turn to do for specified
The thread of a certain specific run state in process to be analyzed is analyzed.
In the exemplary embodiment, since monitored process and the exemplary program analysis of running performance tool of the present invention are two
A different process, therefore before analysis, need using in the libraries libunwind _ UPT_access_mem functions, dependency number
According to from being copied to by byte in monitored process in program analysis of running performance tool processes, then analyzed again.
In step S114, using the second parameter in the first system call function, the thread of the run mode is interrupted.
In the exemplary embodiment, second parameter is the PTRACE_ in the ptrace systems call function
INTERRUPT parameters, the thread for interrupting running states.
Wherein, it can suspend or terminate at any time in sampling process.Termination is exactly normally to exit monitoring process.Pause
Exactly increase a bool variable, indicates whether placed in a suspend state, in the S113 in above-mentioned sampling step to sentence with Stop
It is disconnected, if Stop is true, direct suspend mode for a period of time (be defaulted as 10ms, can independently be arranged according to actual needs, can be with
It is the inverse of sample frequency).
In the exemplary embodiment, further include after the step S11:Centering is broken successful thread, and the first library is utilized
In the initialization analyzed into broker's storehouse frame of first function.
For example, the initialization of the stack frame analysis may include:Corresponding memory headroom is hewed out, so as to later corresponding
Internal storage data is from the operation copied in monitored process in profile processes.
In the exemplary embodiment, first library is the libraries libunwind, and the first function is the libunwind
Unw_init_remote functions in library.Similarly, it is if the program analysis of running performance method is applied to other operations
System, then first library and its first function can also be that by similar stack frame analysis function of initializing other libraries and its
Function is not construed as limiting the goal of the invention of the present invention herein.
In the exemplary embodiment, further include after the step S11:Judge whether the thread is currently in system
In calling;When the thread be in system call in, be recorded as system calling;After being spaced preset time, the step S11 is returned to
Interrupt the thread of next run mode in the process to be analyzed.
For example, according to the information under/proc/PID/task/TID/syscall, it is known that whether the thread is currently located
In system calling, if it is, system calling is directly recorded as in statistical data, and direct suspend mode is for a period of time;Such as
Fruit is no, then continues following step.System is called and generic function calling/invocation of procedure is all relatively common.System
Calling is the interface of user program and kernel interaction.When system is called, CPU (Central Processing Unit, centre
Reason device) by traps be switched to kernel state start execute core system call function, this when there is no need to analyze with
Stack frame function call chain those of in the state of family.
In step s 12, when the thread is currently in function call, current stack frame (stack frame) institute is obtained
The function name of the function of operation.
Here the concept and principle of stack frame are briefly illustrated.The present invention is that the stack frame based on sampling is analyzed.Stack is relatively whole
For a system, and stack frame is then with respect to for some function.Stack frame also makes procedure activation record, and is that compiler is used in fact
A kind of data structure of existing process/function call.In current most computers architectural framework, the parameter of function is transmitted, is local
The distribution of variable and release all realized by active stack, and stack is also used for storing return value information, save register for
Restore the state before calling.The calling process of each function all can be that the function of the secondary calling distributes stack space, be single function
The part stack space of distribution is just called stack frame.
Maintain the required information of function call process in this stack frame, as function enter ginseng, go out ginseng, return address and on
The information such as the bottom of stack pointer of one stack frame also save the automatic variable inside function.Therefore stack effect is exactly to be used for keeping stack
The activation record (i.e. function call) of frame.
Fig. 2 schematically shows the schematic diagram of the stack frame layout of the function call process formation of 32 systems.
As shown in Fig. 2, for a stack, ebp (extended base pointer, base pointer register) and
Esp (extended stack pointer, stack pointer register) be respectively directed to system stack topmost a stack frame bottom and
The stack top of stack frame.Assuming that parameter 1 ..., parameter n is the ginseng that enters of called function, and the stack representation of Fig. 2 is pop down from top to bottom
, it is exactly parameter n elder generations pop down, followed by parameter n-1 ..., is finally parameter 1.For example, it is assumed that there are one function fun (parameter 1,
Parameter 2 ..., parameter n) are then to be pressed onto parameter 1 to n in stack from right to left.After called function, according in stack
The ebp of the return address and preservation that are saved can be restored to the original stack frame state of caller.Here return address can be with
It is interpreted as:Father's function is when calling a certain subfunction, by next Codabar code of code where subfunction described in father's function
Address is as return address.
In the stack constructed based on ebp, function call all generates a stack frame each time, in store secondary function in stack frame
The data for calling corresponding parameter, return address and the function to generate in the process of running.Each stack frame is connected to by ebp, shape
Such as single-track link table, chained list gauge outfit is specified by current ebp registers.For example, it is assumed that comprising three functions stack frame A, B and C, shown letter
Number calling is sequentially function C call function B, and function B call function A, system is currently running the code in function A.Currently
[ in the in store stack frame A of ebp registers;ebp]Address ([ebp]Indicate the ebp registers in indentation stack), A.[ebp]Then
Record B.[ebp]Address, B.[ebp]In in store C.[ebp]Address in the stack of place is formed such as
ebp->A.[ebp]->B.[ebp]->C.[ebp]
Unidirectional ebp chains.It is the newest stack frame in system that function A, which corresponds to stack frame, and the code in function A can be by above-mentioned
Relationship removes all stack frames in traversal current system, then reads the content of each stack frame.
And the stack frame layout of 64 system versions under x86 frames has then been laid out not with the stack frame of 32 system versions
Together, first, only 8 general registers are for using (eax, ebx, edx, ebp, esp, esi, edi) under 32, and 64 then will
Register extensions be 64 (prefix is changed to " r " by " e "), and increased newly 8 registers (r8, r9, r10, r11, r12,
R13, r14, r15).Secondly, the mode that parameter is transmitted would also vary from, the ginseng of 6 integers or pointer type that function starts
Number will be transmitted by register, and first parameter is stored in rdi, and second is stored in rsi, is next stored in successively
In rdx, rcx, r8, r9, since the 7th parameter, next all parameters will all be transmitted by stack.
In the exemplary embodiment, the step S12 includes:Using the second function in the first library, current stack frame is obtained
The reorganization function name of the function of operation;Decipher obtaining using function name is adapted described in the third function pair under the first NameSpace
Obtain the function name of the function.
In the exemplary embodiment, the second function is the unw_get_proc_name letters in the libraries libunwind
Number, first NameSpace be abi NameSpaces, the third function be the abi NameSpaces under _ _ cxa_
Demangle functions.Using the unw_get_proc_name functions in the libraries libunwind, current stack frame operation can be obtained
The title of function, but at this time function name be adapted (to allow heavy duty, compiler is by the information of described function parameter type
It is merged into the original title of function, to generate unique function name for overload function), so needing to name using abi
Under space _ _ cxa_demangle function pairs function name decipher the true function name for obtaining the function.
In step s 13, judge whether the function that the current stack frame is run is according to the function name of the function
One virtual machine entrance function.
In the exemplary embodiment, the first virtual machine entrance function is Python virtual machine entrance functions.Certainly, institute
It states the first virtual machine entrance function and can also be that other virtual machine entrance functions, such as script lua, the present invention do not make this
It limits.It is described in detail below with Python virtual machine instances.As the entitled PyEval_ of the function of the currently running function
When EvalFrameEx, that is, judge the currently running function for the Python virtual machines entrance function.
The concept and its implementation principle of Python virtual machines are briefly illustrated below.It is main that Python runs related data structures
It is made of PyCodeObject and PyFrameObject.Wherein PyCodeObject is the storage organization of Python bytecodes,
Python program files need to be compiled into PyCodeObject objects before execution, each Code Block can be one
PyCodeObject objects.To be stored after PyCodeObject structure sequences, when operation, loads pyc files after compiling
And it is deserialized as PyCodeObject objects.Python virtual machines can be from the PyCodeObject objects that compiling obtains successively
Each byte code instruction is read in, and executes this byte code instruction in current context environmental.Python virtual machines are real
It is the process that file is executed in simulated operation on border.The byte code instruction of Python programs and some static informations are than as usual
Amount etc. is stored in PyCodeObject, but it is that dynamic changes when running to have many contents when operation, thus
PyFrameObject i.e. stack frame object are required.
PyFrameObject is the simulation to stack frame, when entering a new function, can all be had
PyFrameObject objects are operated for Simulation Stack frame.Each PyFrameObject object maintains one
PyCodeObject objects, this shows in Dram spatial object and source code in each PyFrameObject
One section of code (code) is corresponding.By analyzing PyFrameObject objects, we can obtain and current Python functions phase
The information of pass, such as the title of Python functions, specific line number and affiliated file.
In step S14, when the function that the current stack frame is run is the first virtual machine entrance function, record
The first kind function call information that the current stack frame in the operation program is run.
For example, first class function is the Python functions in the operation program.
Fig. 4 schematically shows a kind of flow chart of the step S14.As shown in figure 4, in step s 141, working as when described
When the function that preceding stack frame is run is the first virtual machine entrance function, using the 4th function in the first library, described in acquisition
First pointer of current stack frame.
In the exemplary embodiment, for 32 systems, the 4th function is the unw_ in the libraries libunwind
Get_reg functions, first pointer are esp pointers, using the unw_get_reg functions in the libraries libunwind, are obtained current
The esp pointers of stack frame.In another embodiment, for 64 systems, first pointer is rsp pointers.It should be noted that
Here esp with rsp be for example, the system platform that can be actually run according to program is different and accordingly adjusts,
This is not limited.It is illustrated by taking 32 systems as an example below.
In step S142, according to the first object's position of first needle locating to the current stack frame.
In the exemplary embodiment, first object is PyFrameObject.According to the esp needle locatings to should
The positions PyFrameObject of current stack frame.First ginseng of PyEval_EvalFrameEx functions is found here with esp
The positions in memory number PyFrameObject*, this thinking found need the stack when function call analyzed based on front
The principle of frame.
In step S143, the first object is read from memory according to first object's position.
For example, reading PyFrameObject from memory according to the positions PyFrameObject.
In step S144, the corresponding first kind function name of the current stack frame is obtained according to first object read
And the line number specifically gone to.
For example, obtaining the corresponding Python function names of the current stack frame and tool according to the PyFrameObject read
The line number that body is gone to, and carry out relevant record.
In the exemplary embodiment, the method further includes:Step S15, when the function that the current stack frame is run is not
When the first virtual machine entrance function, records the second class function that the current stack frame in the operation program is run and call letter
Breath.
For example, second class function is C/C++ functions.
In one embodiment, the calling frequency of C/C++ functions is counted using following methods:To first stack frame, also
When being the last one Functional Analysis on function call chain, the true letter of function is obtained according to the step S144 in above-mentioned flow
After several, one can be added to the occurrence number of the function;After all stack frames for traversing entire thread, you can statistics obtains the function
The calling frequency.In another embodiment, further include:By the calling frequency of function obtained above divided by according to sampling in total
Number, can be in the hope of the calling frequency of each function.
In the exemplary embodiment, the method further includes:Step S16, it is switched to upper stack frame from current stack frame, according to
The step S12-S15 traverses all stack frames of the thread, according to the first kind and second recorded in the step S14 and S15
Class function recalls information counts the first kind and the second class function recalls information in the operation program.
For example, the unw_step functions in the libraries libunwind can be utilized, state is switched to upper one from current stack frame
Stack frame, using this on a stack frame as new current stack frame, then the step S12-S15 can be utilized to traverse the institute of the thread
There are stack frame, and statistical correlation information, until the failure of unw_step functions, then the process of current interrupt thread sampling analysis
Terminate.
In the exemplary embodiment, the statistics of first kind function call information includes both of which in the step S16:The
One pattern is used to count the recalls information of each first class function itself;Second module is used to count each first kind letter
Number comprising itself inside and all subfunctions recalls information.
For example, the first mode is internal schema (internal patterns), it is used to count each Python functions certainly
The recalls information of body;The second mode is accumulation mode (cumulative patterns), is used to count each Python functions
Including itself inside and all subfunctions recalls information.
Wherein, the internal schema of Python refers to:The mode statistical be each function oneself itself calling frequency and/
Or call the frequency, include subfunction calling frequency and/or call the frequency, thus make a concrete analysis of Python functions when
It waits, takes statistical method as above-mentioned and C/C++ function classes, to the Python virtual machine stacks of first appearance on function call chain
The function progress frequency of frame adds one.
Wherein, the accumulation mode of Python refers to:The mode statistical be comprising including each function oneself, and it is all
The sum of calling frequency and/or the calling frequency of subfunction, so in entire Python function calls chain, in addition to the last one stack
The corresponding Python function names of frame need the frequency to add outside one, and the Python functions in remaining call chain are required for adding one simultaneously.
For example, Python function call chains:A->B->C->D, i.e. A function calls B functions, B function call C functions, C letters
Number calls D functions, and A functions are father's functions of B functions, and B functions are the subfunctions of A functions, while B functions or C function
Father's function, similar, C function is the subfunction of B functions, meanwhile, the father's function and D functions of C function or D functions are C letters
Several subfunctions.Under the internal patterns of Python, it is only necessary to which the frequency of D functions is added one;And Python
Under cumulative patterns, then need A, B, C, the frequency of tetra- functions of D all adds one.
Specifically, in function calling relationship, in contrast father's function and subfunction are.Letter is being called for system
The case where initial address of father's function stack frame of the called function is pressed into stack when number, when one function of father's function call
When, system can be pressed into a return address into stack first, then can be pressed into the stack frame initial address of father's function, pass through system pressure
Stack frame initial address in stacking can directly calculate used stack frame length when father's function executes, and this makes it possible to compare
Accurately calculate the function calling relationship gone out on missions.A determining function calling relationship is had found, and return address is corresponded to
The function name of function record (for example, being recorded in a record sheet);Next return address in stack is continued to search for,
Also according to current lookup to return address determine cause the return address stacking currently found, representative function call
Operation code called function is determined according to operation code, if above-mentioned record if the addressing type of operation code is indirect addressing
Record has the function name of called function in table, then by father's function of the called function recorded in above-mentioned record sheet
Function name is deleted, and the function name of the corresponding function in return address is recorded in above-mentioned record sheet, according to this to returning to ground in stack
Location carries out traversal until stack top.
Specifically, record sheet is used to store the function name of the function there may be call relation, can arbitrarily may be used
It is used to store the data structure of data, such as can be chained list, system that the present invention is not limited thereto.
In the exemplary embodiment, this method can also count the function calling relationship of Python, be remembered according to call relation
Two adjacent functions of picture recording, finally count.
For example, still with Python function call chains above:A->B->C->It is illustrated for D, then to adjacent letter
Number calls (A, B), (B, C), and (C, D) carries out the frequency and add one respectively.
In the exemplary embodiment, the first kind and the second class function recalls information include function call number and/or
Function call frequency and/or function calling relationship.
In the exemplary embodiment, further include:Be arranged adjustment parameter, the adjustment parameter for be arranged sample frequency and/
Or it the Refresh Data frequency and/or is analyzed for the given thread in the process to be analyzed.
For example, the exemplary program analysis of running performance tool title-help of/present invention can show following prompt:
Options:
-- help Produce help message//output help information
-- sample_interval arg Sample interval.Default 10ms. // setting sample frequency write from memory
Recognize 10 milliseconds.
--preserve_times arg Use the lastest preserve_times data for
statistics.
Default 30000. // setting Refresh Data the frequency, acquiescence retain newest 30000 sampled results and take statistics.
-- profile_thread arg Profile the specified thread. // setting is directed to process middle finger
Fixed thread takes statistics analysis.
When actual motion, it is only necessary to which the exemplary program analysis of running performance tool title PID of/present invention can be to specified
Process carry out sampling analysis.
A kind of program analysis of running performance method that embodiment of the present invention provides, using ptrace systems call function and
The libraries libunwind, the C/C++ stacks frame of program and Python stack frames when can analyze operation simultaneously, can analyze simultaneously C/C++ and
Python performances.This method additionally provides simply and easily method of calling, by the way of carry, only need to provide process PID i.e.
It can be analyzed in real time, without specified compiling parameter or modification code, and at the same time supporting 32 and 64 systems.At some
In embodiment, the Python virtual machines of program when can analyse in depth operation count the detailed call relation between function.
In other embodiments, flush mechanism and sample frequency that adjustable parameter supports data are also provided.It can be in sampling process
When suspend or terminate.In some embodiments, acquiescence in process all threads carry out sampling analysis, while support into
Single thread in journey carries out performance evaluation.
Fig. 5 schematically shows the flow chart of another program analysis of running performance method in disclosure exemplary embodiment.
As shown in figure 5, being illustrated for the thread of all run modes by traversing in process to be analyzed.
In the step s 21, it will be marked in the thread of run mode in the process to be analyzed run in program, interrupt the
The thread of i run mode.Here i=1,2,3 ..., n, n are positive integer, and wherein n is all fortune for including in the process to be analyzed
The number of the thread of row state, it is of course also possible to be only specified some or certain several threads.
In step S22, judge whether the thread interrupts success, when thread interrupt success, then enters in next step
S23;Conversely, then adjusting back to step S21.
In step S23, the initialization analyzed into broker's storehouse frame using the first function in the first library.
In step s 24, judge the thread be currently at system call in, when the thread be currently at system call in,
Then jump to step S211;Conversely, then entering next step S25.
In step s 25, the function name for the function that current stack frame is run is obtained.
In step S26, judge whether the function that the current stack frame is run is the first virtual machine entrance function, when deserving
When the function that preceding stack frame is run is the first virtual machine entrance function, then enter next step S27;When the current stack frame is transported
When capable function is not the first virtual machine entrance function, then step S28 is jumped to.
In step s 27, the first kind function call information that the current stack frame in the operation program is run is recorded.
In step S28, the second class function recalls information that the current stack frame in the operation program is run is recorded.
In step S29, upper stack frame is switched to from the current stack frame, using this on a stack frame as new current stack frame.
In step S210, judge whether all stack frames for having stepped through the thread, if having had stepped through the thread
All stack frames, then jump to step S212;Conversely, jumping back to step S25, the thread is traversed according to above-mentioned steps S25-S29
Until all stack frames.
In step S211, it is recorded as system calling.
In step S212, suspend mode preset time.
For example, the preset time default setting is 10 milliseconds.Of course, it is possible to be configured according to specific needs.
In step S213, judge whether the thread for all run modes for having traversed the process, if it is not, jumping back to
Step S21 continues to analyze the thread of next run mode in the process, until traversing the thread of all run modes of the process.
In step S214, terminate.
A kind of program analysis of running performance method that embodiment of the present invention provides, main realization principle are based on sampling
The analysis of stack frame all threads that include inside process to be analyzed can be locked using ptrace system call functions
Fixed, being then spaced the specific time (being traditionally arranged to be 10 milliseconds, related to the sample frequency of setting) interrupts thread, connects
It and analysis frame by frame and statistics is carried out to the stack frame of thread, it is entitled for stack frame, that is, function of Python virtual machine entrances
" PyEval_EvalFrameEx " can further go deep into Python virtual machines, obtained from memory relevant information such as function name,
Function entrance line number etc. carries out statistics and analysis.
In the exemplary embodiment, program analysis of running performance method provided by the invention supports real-time data visualization
Assay surface.For example, being drawn using the libraries libncurses.In another embodiment, the statistics of Python is provided
The switching of cumulative patterns and internal patterns.
Because this method is based on sampling, thus sampling number is more, and frequency is called closer to true.Following figure 6-
9 be the practical result to some engineering project using the exemplary program analysis of running performance tool analysis of the present invention.
Fig. 6 schematically shows the C/C++ function calls of disclosure exemplary embodiment Program analysis of running performance method
The statistical chart of information.
As shown in fig. 6, first is classified as calling frequency, secondary series;s]It is expressed as system and calls , [+]Indicate extensible
Python function performance statistics,;.]For generic function.Here generic function refer in addition to Python virtual machines entrance function with
Outer generic function.It should be noted that in the test design of Fig. 6-9, only system calls ([s]) and generic function tune
With, generic function has individually separated the function of Python virtual machine entrances again in calling, and if this method is applied to other journeys
Sequence performance test, can be different according to the difference of code or the function for being included, and carry out adaptation, count other types letter
Several the calling frequency and/or calling frequency and/or call relation, are not limited thereto.
Fig. 7 schematically shows the interior of the Python functions of disclosure exemplary embodiment Program analysis of running performance method
The statistical chart of portion's pattern.
As shown in fig. 7, first is classified as calling frequency, secondary series if it is;+]Expression can select to be unfolded, and obtain the function
Calling figure, third row be filename, the 4th is classified as function name.
Fig. 8 schematically shows the tired of the Python functions of disclosure exemplary embodiment Program analysis of running performance method
The statistical chart of product module formula.
As shown in figure 8, first is classified as frequency, secondary series if it is;+]Expression can select to be unfolded, and obtain the tune of the function
With figure, third row are filenames, and the 4th is classified as function name.
Fig. 9 schematically shows the Python function calls of disclosure exemplary embodiment Program analysis of running performance method
The statistical chart of relationship.
As shown in figure 9, the function call statistics of Python, using bottom-up exhibition method, indicates to call with retraction
Hierarchical sequence.
It is utilized respectively perf, the tools such as gprof, cProfile carry out program the performance evaluation of C/C++ and Python, so
After summarize, although can obtain similar as a result, needing to be added compiling link relevant parameter or embedded code, and
CProfile can not carry out Python programs lasting real-time analysis, can only analyze the performance of certain a period of time, and
And when program is in stuck state, the analysis of cProfile may fail.
Figure 10 schematically shows a kind of block diagram of program analysis of running performance device in disclosure exemplary embodiment.
As shown in Figure 10, which includes:Interrupt module 111 is used to that program will to be run
In process to be analyzed in be in run mode thread interrupt;Function name acquisition module 112 is used to currently locate when the thread
In function call, the function name for the function that current stack frame is run is obtained;First judgment module 113 is used for according to
The function name of function judges whether the function that the current stack frame is run is the first virtual machine entrance function;First logging modle
114, it is used to, when the function that the current stack frame is run is the first virtual machine entrance function, record in the operation program
The first kind function call information that is run of the current stack frame.
In the exemplary embodiment, which further includes:Second logging modle is used to work as
When the function that the current stack frame is run is not the first virtual machine entrance function, the current stack in the operation program is recorded
The second class function recalls information that frame is run.
In the exemplary embodiment, which further includes:Statistical module is used for from deserving
Preceding stack frame is switched to a stack frame, calls the function name acquisition module, first judgment module, first logging modle
And second logging modle traverses all stack frames of the thread, according to first logging modle and second logging modle
The first kind of record and the second class function recalls information count the first kind and the second class function recalls information in the operation program.
In the exemplary embodiment, which further includes:Second judgment module is used to sentence
Whether the thread that breaks currently is in system calling;Third logging modle is used to be in system calling when the thread,
It is recorded as system calling;Calling module after being used to be spaced preset time, calls the interrupt module to interrupt the process to be analyzed
In next run mode thread.
Since each function module of the program analysis of running performance device of embodiment of the present invention is invented with the above method
It is identical in embodiment, therefore details are not described herein.
It should be noted that although be referred in above-detailed program analysis of running performance device several modules or
Unit, but this division is not enforceable.In fact, according to embodiment of the present disclosure, above-described two or more
The feature and function of multimode either unit can embody in a module or unit.Conversely, above-described one
Either the feature and function of unit can be further divided into and embodied by multiple modules or unit module.
In addition, although describing each step of method in the disclosure with particular order in the accompanying drawings, this does not really want
These steps must be executed according to the particular order by asking or implying, or the step having to carry out shown in whole could be realized
Desired result.Additional or alternative, it is convenient to omit multiple steps are merged into a step and executed by certain steps, and/
Or a step is decomposed into execution of multiple steps etc..
Through the above description of the embodiments, those skilled in the art is it can be readily appreciated that example described herein is implemented
Mode can also be realized by software realization in such a way that software is in conjunction with necessary hardware.Therefore, according to the disclosure
The technical solution of embodiment can be expressed in the form of software products, the software product can be stored in one it is non-volatile
Property storage medium (can be CD-ROM, USB flash disk, mobile hard disk etc.) in or network on, including some instructions are so that a calculating
Equipment (can be personal computer, server, touch control terminal or network equipment etc.) is executed according to disclosure embodiment
Method.
Those skilled in the art after considering the specification and implementing the invention disclosed here, will readily occur to its of the disclosure
Its embodiment.This application is intended to cover any variations, uses, or adaptations of the disclosure, these modifications, purposes or
Person's adaptive change follows the general principles of this disclosure and includes the undocumented common knowledge in the art of the disclosure
Or conventional techniques.The description and examples are only to be considered as illustrative, and the true scope and spirit of the disclosure are by following
Claim is pointed out.
It should be understood that the present disclosure is not limited to the precise structures that have been described above and shown in the drawings, and
And various modifications and changes may be made without departing from the scope thereof.The scope of the present disclosure is only limited by the accompanying claims.
Claims (13)
1. a kind of program analysis of running performance method, including:
Step 1 will run the thread interrupt that run mode is in the process to be analyzed in program;
Step 2 is currently in function call when the thread, obtains the function name for the function that current stack frame is run;
Step 3 judges whether the function that the current stack frame is run is that the first virtual machine enters according to the function name of the function
Mouth function;
Step 4, when the function that the current stack frame is run be the first virtual machine entrance function when, record the operation program
In the first kind function call information that is run of the current stack frame;
The step 1 includes:
According to process ID, the thread that the process to be analyzed is included is obtained;
Using the first parameter in the first system call function, the thread is tracked;
The state of the thread is obtained according to the mode field in Thread Id, and the thread of run mode is marked;
Utilize the second parameter in the first system call function, the thread of interrupt operation state;
Centering is broken successful thread, the initialization analyzed into broker's storehouse frame using the first function in the first library.
2. program analysis of running performance method according to claim 1, which is characterized in that further include:
Step 5, when the function that the current stack frame is run is not the first virtual machine entrance function, record the operation journey
The second class function recalls information that the current stack frame in sequence is run.
3. program analysis of running performance method according to claim 2, which is characterized in that further include:
Step 6 is switched to upper stack frame from the current stack frame, and all stack frames of the thread, root are traversed according to the step 2-5
The first kind and in the operation program is counted according to the first kind recorded in the step 4 and 5 and the second class function recalls information
Two class function recalls informations.
4. program analysis of running performance method according to claim 3, which is characterized in that also wrapped after the step 1
It includes:
Judge the thread currently whether in system is called;
When the thread be in system call in, be recorded as system calling;
After being spaced preset time, the thread for next run mode that the step 1 is interrupted in the process to be analyzed is returned to.
5. program analysis of running performance method according to claim 1, which is characterized in that the step 2 includes:
Using the second function in the first library, the reorganization function name for the function that the current stack frame is run is obtained;
It carries out deciphering the function name for obtaining the function using function name is adapted described in the third function pair under the first NameSpace.
6. program analysis of running performance method according to claim 1, which is characterized in that the step 4 includes:
When the function that the current stack frame is run is the first virtual machine entrance function, the 4th letter in the first library is utilized
Number, obtains the first pointer of the current stack frame;
According to the first object's position of first needle locating to the current stack frame;
The first object is read from memory according to first object's position;
The corresponding first kind function name of the current stack frame is obtained according to first object read and is specifically gone to
Line number.
7. program analysis of running performance method according to claim 3, which is characterized in that first kind letter in the step 6
The statistics of number recalls information includes both of which:
First mode is used to count the recalls information of each first class function itself;
Second module, be used to count each first class function include itself inside and all subfunctions recalls information.
8. program analysis of running performance method according to claim 3, which is characterized in that the first kind and the second class letter
Number recalls information includes function call number and/or function call frequency and/or function calling relationship.
9. program analysis of running performance method according to claim 1, which is characterized in that further include:
Adjustment parameter is set, and the adjustment parameter is for being arranged sample frequency and/or the Refresh Data frequency and/or being waited for for described
Given thread in analysis process is analyzed.
10. a kind of program analysis of running performance device, which is characterized in that including:
Interrupt module is used to run the thread interrupt that run mode is in the process to be analyzed in program;
Function name acquisition module is used to be currently in function call when the thread, obtains the letter that current stack frame is run
Several function names;
First judgment module, be used to be judged according to the function name of the function function that the current stack frame is run whether be
First virtual machine entrance function;
First logging modle is used for when the function that the current stack frame is run is the first virtual machine entrance function,
Record the first kind function call information that the current stack frame in the operation program is run;
The interrupt module is additionally operable to, according to process ID, obtain the thread that the process to be analyzed is included;Utilize the first system
The first parameter in call function, tracks the thread;The state of the thread is obtained according to the mode field in Thread Id, and
The thread of run mode is marked;Utilize the second parameter in the first system call function, the thread of interrupt operation state;
Centering is broken successful thread, the initialization analyzed into broker's storehouse frame using the first function in the first library.
11. program analysis of running performance device according to claim 10, which is characterized in that further include:
Second logging modle is used to when the function that the current stack frame is run not be the first virtual machine entrance function
When, record the second class function recalls information that the current stack frame in the operation program is run.
12. program analysis of running performance device according to claim 11, which is characterized in that further include:
Statistical module is used to be switched to upper stack frame from the current stack frame, calls the function name acquisition module, described
One judgment module, first logging modle and second logging modle traverse all stack frames of the thread, according to described
The first kind and the second class function recalls information of one logging modle and second logging modle record count in the operation program
The first kind and the second class function recalls information.
13. program analysis of running performance device according to claim 12, which is characterized in that further include:
Whether the second judgment module is used to judge the thread currently in system is called;
Third logging modle is used to be in system calling when the thread, is recorded as system calling;
Calling module after being used to be spaced preset time, calls the interrupt module to interrupt next in the process to be analyzed
The thread of run mode.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610644861.2A CN106227671B (en) | 2016-08-05 | 2016-08-05 | Program analysis of running performance method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610644861.2A CN106227671B (en) | 2016-08-05 | 2016-08-05 | Program analysis of running performance method and device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106227671A CN106227671A (en) | 2016-12-14 |
CN106227671B true CN106227671B (en) | 2018-10-26 |
Family
ID=57548252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610644861.2A Active CN106227671B (en) | 2016-08-05 | 2016-08-05 | Program analysis of running performance method and device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106227671B (en) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI633432B (en) * | 2016-12-29 | 2018-08-21 | 宏碁股份有限公司 | Statistical methods for file |
CN107135128B (en) * | 2017-06-28 | 2021-07-23 | 努比亚技术有限公司 | Call chain data acquisition method, mobile terminal and computer-readable storage medium |
CN109753414A (en) * | 2017-11-01 | 2019-05-14 | 阿里巴巴集团控股有限公司 | Acquisition method, methods of exhibiting, electronic equipment and the client of performance data |
TWI682323B (en) * | 2017-11-24 | 2020-01-11 | 財團法人工業技術研究院 | Server and setting method thereof |
CN108363911B (en) * | 2018-02-11 | 2021-10-29 | 西安四叶草信息技术有限公司 | Python script obfuscating and watermarking method and device |
CN110737465B (en) * | 2018-07-20 | 2023-09-22 | 深圳市大梦龙途网络科技有限公司 | Method and related device for acquiring function call path |
CN109542793B (en) * | 2018-11-30 | 2022-06-14 | 北京小马智行科技有限公司 | Program performance analysis method and device |
CN109992511B (en) * | 2019-03-25 | 2022-11-22 | 口碑(上海)信息技术有限公司 | Device and method for obtaining code test coverage rate |
CN111090466B (en) * | 2019-12-20 | 2022-03-18 | 北京字节跳动网络技术有限公司 | Optimization method, device, equipment and storage medium of call instruction |
CN113760338B (en) * | 2020-06-05 | 2023-07-18 | 北京字跳网络技术有限公司 | Method and device for switching application binary interface ABI and electronic equipment |
CN112052073A (en) * | 2020-09-18 | 2020-12-08 | 网易(杭州)网络有限公司 | Script performance analysis method and device, readable storage medium and electronic equipment |
CN112882695B (en) * | 2021-03-02 | 2023-11-28 | 百果园技术(新加坡)有限公司 | Parameter transmission method, parameter transmission device, computer equipment and storage medium |
CN113703879B (en) * | 2021-08-31 | 2023-10-20 | 康键信息技术(深圳)有限公司 | Object reloading method, device, equipment and storage medium |
CN113886251B (en) * | 2021-09-30 | 2023-04-11 | 四川大学 | Hot spot function determination method based on thermodynamic diagram |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346708A (en) * | 2010-08-03 | 2012-02-08 | 中兴通讯股份有限公司 | Debugger and debugging method thereof |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7017153B2 (en) * | 2001-12-13 | 2006-03-21 | Hewlett-Packard Development Company, L.P. | Uninstrumenting in-line code instrumentation via stack unwinding and cleanup |
US9361102B2 (en) * | 2014-06-09 | 2016-06-07 | Lehigh University | Methods for enforcing control flow of a computer program |
-
2016
- 2016-08-05 CN CN201610644861.2A patent/CN106227671B/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346708A (en) * | 2010-08-03 | 2012-02-08 | 中兴通讯股份有限公司 | Debugger and debugging method thereof |
Non-Patent Citations (1)
Title |
---|
"Produce stack traces in output with libunwind";eb1b3f4;《https://github.com/pgbovine/strace-plus/blob/master/strace.c》;20130423;第1-30页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106227671A (en) | 2016-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106227671B (en) | Program analysis of running performance method and device | |
US8423982B2 (en) | Speculative compilation | |
US7275239B2 (en) | Run-time wait tracing using byte code insertion | |
US10802946B2 (en) | Presenting differences between code entity invocations | |
US8726255B2 (en) | Recompiling with generic to specific replacement | |
EP3035191B1 (en) | Identifying source code used to build executable files | |
US7475394B2 (en) | System and method of analyzing interpreted programs | |
CN106471476A (en) | For to optimized code edit and continue and enhanced optimized debugging technology | |
KR960038600A (en) | Apparatus and method for enhancing data processing system performance (METHOD AND APPARATUS FOR IMPROVING SYSTEM PERFORMANCE IN A DATA PROCESSING SYSTEM) | |
CN107766130B (en) | Method and device for migrating virtual machine to container | |
CN107015841B (en) | Preprocessing method for program compiling and program compiling device | |
ES2882177T3 (en) | Speculative Reproduction of Executable Code | |
CN112099800A (en) | Code data processing method and device and server | |
KR102013582B1 (en) | Apparatus and method for detecting error and determining corresponding position in source code of mixed mode application program source code thereof | |
Kähkönen et al. | Unfolding based automated testing of multithreaded programs | |
KR100750834B1 (en) | A method of data call stack tracing in data monitoring of JAVA byte code and a device for storing the method in compter program type | |
CN105550575B (en) | A kind of acquisition methods and device of not derived function address and data structural deflection | |
KR20110080073A (en) | Coverage apparatus and method for testing multi-thread environment | |
Kallas et al. | Practically correct,{Just-in-Time} shell script parallelization | |
Vasilakis et al. | Ignis: Scaling distribution-oblivious systems with light-touch distribution | |
US7448029B2 (en) | Modification of array access checking in AIX | |
Lång et al. | Parallel graph-based stateless model checking | |
CN116028108A (en) | Method, device, equipment and storage medium for analyzing dependent package installation time | |
Hirt et al. | Oracle JRockit: The Definitive Guide | |
Jungblut et al. | Source-to-Source Instrumentation for Profiling Runtime Behavior of C++ Containers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |