CN111611158A - Application performance analysis system and method - Google Patents

Application performance analysis system and method Download PDF

Info

Publication number
CN111611158A
CN111611158A CN202010383480.XA CN202010383480A CN111611158A CN 111611158 A CN111611158 A CN 111611158A CN 202010383480 A CN202010383480 A CN 202010383480A CN 111611158 A CN111611158 A CN 111611158A
Authority
CN
China
Prior art keywords
video memory
program
pointer
kernel function
abstract
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.)
Pending
Application number
CN202010383480.XA
Other languages
Chinese (zh)
Inventor
王珏
杨智策
杨文�
王彦棡
杨宏伟
聂宁明
王学松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Computer Network Information Center of CAS
China Institute of Atomic of Energy
Original Assignee
Computer Network Information Center of CAS
China Institute of Atomic of Energy
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 Computer Network Information Center of CAS, China Institute of Atomic of Energy filed Critical Computer Network Information Center of CAS
Priority to CN202010383480.XA priority Critical patent/CN111611158A/en
Publication of CN111611158A publication Critical patent/CN111611158A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (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 invention relates to an application performance analysis system and a method, wherein the system comprises a video memory leakage analysis module and a kernel function execution time module; the video memory leakage analysis module is used for performing addition, deletion and modification operations on the pointer address mapping set by analyzing an abstract syntax tree of a static program to record the operations on the video memory; whether a pointer is available or a video memory address which is not released is analyzed in the pointer address mapping set; and the kernel function execution time module is used for capturing kernel function execution names needing to be counted through corresponding interfaces, capturing the kernel function execution names before the target kernel function of the application program is executed, inserting CPU/GPU time measurement code segments, summarizing the counted time when the program is finished running, and displaying the collected time. The invention analyzes before the program runs and finds whether the program has the problem of video memory leakage as early as possible.

Description

Application performance analysis system and method
Technical Field
The invention relates to an application performance analysis technology, in particular to an application performance analysis system and method.
Background
HPCToolkit is a set of multi-platform tools for performance analysis of applications. The HPCToolkit performs video memory leakage detection through a dynamic detection method, the dynamic detection method needs to insert piles or set interruption to capture some information in the program running process, and the actual running efficiency of the application program is influenced to a greater or lesser extent. In the hpctookit, when counting kernel function execution time, it is necessary to capture the time when kernel function execution starts and the time when kernel function execution ends. Through the API function provided by the platform, such as cudadevicesyncronize (AMD platform corresponds to hipdevicesyncronize function), the program will remain in the blocking state until all the previously requested tasks have been completely executed, and an error will be returned if any previously executed task fails.
Disclosure of Invention
The invention aims to solve the problems of the conventional application performance analysis system in the video memory leakage detection.
In order to achieve the above object, in one aspect, the present invention provides an application performance analysis system, which includes a memory leakage analysis module and a kernel function execution time module; wherein,
the video memory leakage analysis module is used for performing addition, deletion and modification operations on the pointer address mapping set by analyzing the abstract syntax tree of the static program so as to record the operations on the video memory; whether a pointer is available or a video memory address which is not released is analyzed in the pointer address mapping set; and
and the kernel function execution time module is used for capturing kernel function execution names needing to be counted through corresponding interfaces, capturing the kernel function execution names before the target kernel function of the application program is executed, inserting CPU/GPU time measurement code segments, summarizing the counted time when the program is finished running, and displaying the collected time.
In another aspect, the present invention provides an application performance analysis method, including the steps of:
the method comprises the steps of performing addition, deletion and change operations on a pointer address mapping set by analyzing an abstract syntax tree of a static program to record the operation on the video memory; whether a pointer is available or a video memory address which is not released is analyzed in the pointer address mapping set; and
capturing kernel function execution names needing to be counted through corresponding interfaces, capturing before target kernel functions of application programs are executed, inserting CPU/GPU time measurement code segments, summarizing counted time when the programs are operated, and displaying.
The invention has the beneficial effects that:
(1) and analyzing before the program runs to discover whether the program has a video memory leakage problem as early as possible.
(2) The static detection does not relate to the actual operation of the application program and does not influence the actual operation efficiency.
(3) Because static analysis is adopted, detection is only carried out on source codes, so that detection software can be deployed to different heterogeneous platforms for application.
Drawings
The invention is further illustrated with reference to the following figures and examples.
Fig. 1 is a schematic structural diagram of an application performance analysis system according to an embodiment of the present invention;
FIG. 2 is a schematic diagram of an extended video memory leak detection process;
FIG. 3 is a schematic diagram illustrating a statistical process of execution time of extended kernel functions;
FIG. 4 is a flowchart illustrating the CPU/GPU function execution time statistics.
Detailed Description
The embodiment of the invention adds the functions of video memory leakage analysis and kernel function execution time statistics on the Invitta GPU and the domestic advanced computing system accelerator on the basis of the open source software HPCToolKit tool to form a program performance analysis system D-HPCToolKit of a cross-platform heterogeneous system structure.
Aiming at the lower-layer display card programming languages, such as CUDA and HIP, an application program needs functions such as cudaMalloc or hipMalloc to apply for a display memory space, when the program uses up the corresponding space, the functions such as cudaFree or hipFlee and the like must be called manually to release the space, otherwise, as the program continuously applies, the display memory is always used up, and the program and even the system are crashed.
In order to solve the problem of video memory leakage in a heterogeneous system, the embodiment of the invention provides a video memory leakage static detection algorithm, which refers to a memory leakage static detection method and has the following characteristics: (1) static detection: and analyzing before the program runs to discover whether the program has a video memory leakage problem as early as possible. (2) No impact on application performance: the dynamic detection has more or less influence on the actual running efficiency of the application program due to the fact that pile insertion or interruption is required to capture some information in the running process of the program; the static detection does not relate to the actual running of the application program, so the actual running efficiency is not influenced. (3) Cross-platform performance: because static analysis is adopted, detection is only carried out on source codes, so that detection software can be deployed to different heterogeneous platforms for application.
Fig. 1 is a schematic structural diagram of an application performance analysis system according to an embodiment of the present invention. As shown in fig. 1, the system includes a memory leak analysis module and a kernel function execution time module.
First, display memory leakage static analysis module
The video memory leakage static analysis module mainly detects the following two video memory leakage types: (1) the applied memory space is forgotten to be released: the method is used for calling only cudaMalloc and hipMalloc, and calling cudaFree and hipFare without matching. (2) The applied video memory space is released for multiple times: and the release of cudaFree and hippree is called for multiple times aiming at the same video memory space of the application. (3) "field space": the pointer after the space is applied through cudaMalloc and hipCalloc changes the value of the pointer through other assignment operations, so that the video memory space applied at the beginning cannot be reached, and leakage is caused.
Fig. 2 is a flow chart of the D-hpctoikit work flow after adding a video memory leakage static detection function. Source, wherein "static analysis" indicates that analysis of the source program app.source is required, i.e. static detection; the hpcren-memleak is a tool for statically detecting whether the video memory is leaked or not; the "memleak profile" corresponds to the detection result: the DUPLICATE _ ERR corresponds to a repeated release error, the wildspace _ ERR corresponds to a wild space error, and the READMINPOINTER _ ERR corresponds to a video memory unreleased error.
The step of performing static detection analysis on the source program comprises the following steps:
step one, abstract nodes of source program
Because the programming style of each person is different, the program code structure is different, and the direct analysis of the source code of the source program is difficult. The embodiment of the invention abstracts the source program code into the SPAN program intermediate expression and then analyzes the SPAN.
SPAN abstracts the following for each row of the source program:
<node>
<lineNum>i</lineNum>
<code>code</code>
<nextLine>j1(,j2,j3…jn)</nextLine>
</node>
wherein < node > represents a node, which represents a certain line in the program source code, i represents a line number, code is a source code statement, j 1-jn represents a line number of a statement next to the current statement (generally, for an expression statement, nextLine is a line number of a next line statement; for a control statement, nextLine is a plurality of branch line numbers); the < node > node of the ith row is represented by the variable nodei.
The final program is abstracted into a node tree, and the source program abstract node tree contains information of each line of codes and the transfer relation among the codes.
Step two, controlling the flow chart
The control flow graph is a directed graph reflecting the logic control flow of a program. Generally, a control flow graph of a function can be represented as (N, E, Entry, Exit). Wherein, N represents the condition judgment of simple sentences and compound sentences in the program and the control flow junction, and E represents the set of directed edges to reflect the control flow relation among the sentences in the program. Entry is a fixed unique Entry node of the function, and Exit is a unique deduction node of the function. A control flow graph is a directed graph with a single, fixed ingress node and egress node. For the programs with non-single inlet and single outlet, the method can be solved by artificially adding a unified inlet and outlet. The control flow graph may be used to analyze branch flow direction of program source code for determining call relationships between code blocks. A control flow graph is a path from a root node to a leaf node of a tree of abstract nodes of a source program in a previous section.
Step three, pointer address mapping set
Each address in the video memory has a variable corresponding to it, and the application and release of the video memory are based on the operation of the pointer variable.
The set of pointer addresses is defined as follows. Let P denote the video memory pointer variable set in the program, M denotes the video memory address set, and for Pi belongs to P, Mi belongs to M, { < { Pi }, Mi > } denotes the pointer address mapping set.
The embodiment of the invention records the operation of the program on the video memory by analyzing the abstract syntax tree of the static program and performing the operations of adding, deleting and changing the pointer address mapping set. And finally, analyzing whether the pointer address mapping set has an empty pointer or a video memory address which is not released.
The pointer variable of each operation is set as pointer, and the video memory address is memory (because of static analysis, the real video memory address cannot be obtained, and the embodiment of the invention replaces the current time).
The operation for the pointer address mapping set is as follows.
(1) malloc (< pointer, memory >): and inserting the pointer and the video memory address into the P-MSet, and applying for video memory mainly aiming at cudaMalloc and hipMalloc functions.
The algorithm is as follows: adding pointer address mapping to P-M Set
Inputting: pointer variable name pointer, video memory address memory
And (3) outputting: is free of
Begin
Acquiring the current time, and assigning the time to the memory
Newly-built pointer address mapping relation < { pointer }, memory >
Insert < { pointer }, memory > into P-M Set
End
(2) free (pointer): and releasing the video memory address pointed by the pointer, wherein the video memory is released mainly aiming at cudaFree and hippree functions.
The algorithm is as follows: deleting pointer and memory address pointed by pointer from P-M Set
Inputting: pointer variable name pointer
And (3) outputting: video memory detection error code
Begin
Traversing each group of < { pointers }, memory >, and taking out a pointer variable set { pointers }
Determine if the pointer is among the set { pointers }
If yes, deleting the current < { pointers }, memory > mapping, exiting the loop and returning SUCCESS
If not, continue the next traversal
When the traversal is finished, the current pointer is not found, a repeated deletion exception is recorded and the repeated deletion _ ERR is returned
End
(3) modify (< pointeri, memoryi >, < pointerj, memoryj >): and carrying out assignment modification on the pointer variable. For an assignment operation of i-j.
The algorithm is as follows: modifying elements of a P-M Set
Inputting: pointer address mapping relationships < pointeri, memoryi >, < pointerj, memoryj >
And (3) outputting: is free of
Begin
Traversing each group of < { pointers }, memory >, and taking out a pointer variable set { pointers }
Find the set of pointeri < { pointers } i, memoryi >
Find the set of pointerj < { pointers } j, memoryj >
If the memoryi and the memoryj are the same video memory address
Do nothing
If the memoryi and the memoryj are not the same video memory address
Pointeri is removed from { pointers } i and added to { pointers } j
End
(4) check (): and traversing the pointer address mapping set when the program is ended, and checking whether an unreleased video memory space exists.
The algorithm is as follows: traversing P-M Set
Inputting: is free of
And (3) outputting: video memory detection error code
Begin
Judging whether the P-M Set is empty or not
If empty, return SUCCESS
If not, go through each set < { pointers }, memory >
If { pointers } is NULL, return WILDMEMORY _ ERR
If { pointers } is not NULL, return REAMINPOINTER _ ERR
End
The embodiment of the invention also provides a video memory leakage fault detection method, which comprises the following steps:
(1) converting a source program into a source program abstract node set;
(2) constructing an abstract node tree according to the source program abstract node set;
(3) starting analysis from the root node of the abstract node tree, and establishing and maintaining a pointer address mapping set according to 3P-MSet operation functions in the analysis process;
(4) executing a check function after the leaf node is executed, and returning a corresponding result;
(5) deeply traversing the abstract node tree;
(6) and (5) circulating the steps (3) to (5) until the depth traversal is completed.
Kernel function execution time module
The CPU end in the heterogeneous system program is responsible for the distribution of tasks and data, and the GPU end is responsible for the parallel processing of the data, so that the shortening of the execution time of the kernel function running on the GPU is a key index for improving the overall running efficiency of the program.
Designing the kernel function execution time module requires consideration of the following points:
1. and synchronously executing the kernel functions: the kernel execution time is counted, and it is necessary to capture the time when the kernel execution starts and the time when the kernel execution ends. Through the API function cudadevicesynchronization (AMD platform corresponds to hipdevicesynchronization), the program will stay in the blocking state until all the previously requested tasks have been completely executed, and an error will be returned if any previously executed task fails.
2. Cross-platform performance: and calling an API (application programming interface) provided by the heterogeneous system to carry out kernel function time statistics when the kernel function execution time statistics is carried out. The embodiment of the invention adopts 2 time statistics APIs: (1) for CPU system call, adopting gettimeoffset function in < sys/time.h > system library to count TIME difference to obtain CPU _ TIME measurement TIME of kernel function; (2) for GPU system call, 2 sets of measurement modes are provided for 2 heterogeneous system Inviandard systems and AMD systems supported by the embodiment of the invention, and a cudaEventElapsedTime function is adopted for counting aiming at a CUDA platform; for HIP platforms, adopt
And counting hipentelapsedtime, and obtaining the TIME difference to obtain the GPU _ TIME. The access to the bottom hardware counter of the display card can be avoided through a general API calling mode provided by the system, and the non-universality and the lack of infrastructure support are avoided.
3. Coarse granularity: as the kernel function execution time statistics is carried out by adopting the interface provided by the CPU system or the GPU system, the granularity of time measurement is coarse granularity, and the time statistical unit is microsecond.
FIG. 3 is a flow chart illustrating the statistics of the execution time of the extended kernel function. FIG. 3 shows the D-HPCToolkit workflow after kernel function execution time is extended, and the kernel extraction profile part is the kernel function execution time output result of the extended hprun. The original hprun function can only count the execution time of the CPU function and the loop, and a call stackprofile statistical result is formed. Now, a statistical function of hprun is added to support statistics of execution time of the GPU kernel, and a macroscopic D-hpctookit function is shown in fig. 3, and a specific statistical flow is shown in fig. 4.
FIG. 4 is a flowchart illustrating the CPU/GPU function execution time statistics. As shown in fig. 4, on the basis of hpcontrol, the upper layer captures a kernel execution name to be counted through a dlopen interface provided by Libmonitor in hpctolkit, captures the kernel execution name before the target kernel of the application program is executed, inserts a CPU/GPU TIME measurement code segment (CPU/GPU timeout and CPU/GPU TIME end), and finally, after the program is finished running, displays the summary counted TIME. Capturing a target kernel function through a CUDA _ RUNTIME _ SYNC _ WRAPPER function, for example, for a testKernel < < < grid, threads > () function, inserting a GPU TIME start code before the function runs, wherein the code is as follows:
float gpuTime=0.f;
cudaEvent_t start,stop;
cudaEventCreate(&start);
cudaEventCreate(&stop);
cudaEventRecord(start);
after the kernel function is finished, inserting a GPU TIME end code, wherein the code is as follows:
cudaEventRecord(stop);
cudaEventSynchronize(stop);
cudaEventElapsedTime(&gpuTime,start,stop);
cudaEventDestroy(start);
cudaEventDestroy(stop);
the result of gpuTime counted in the final CUDA _ running _ SYNC _ WRAPPER function is the execution time of the kernel function.
The embodiment of the invention analyzes before the program runs and discovers whether the program has the problem of video memory leakage as early as possible. Since the static detection does not involve the actual running of the application program, the actual running efficiency is not affected. Because static analysis is adopted, detection is only carried out on source codes, so that detection software can be deployed to different heterogeneous platforms for application.
It will be obvious that many variations of the invention described herein are possible without departing from the true spirit and scope of the invention. Accordingly, all changes which would be obvious to one skilled in the art are intended to be included within the scope of this invention as defined by the appended claims. The scope of the invention is only limited by the claims.

Claims (8)

1. An application performance analysis system is characterized by comprising a video memory leakage analysis module and a kernel function execution time module; wherein,
the video memory leakage analysis module is used for performing addition, deletion and modification operations on the pointer address mapping set by analyzing the abstract syntax tree of the static program so as to record the operations on the video memory; whether a pointer is available or a video memory address which is not released is analyzed in the pointer address mapping set; and
and the kernel function execution time module is used for capturing kernel function execution names needing to be counted through corresponding interfaces, capturing the kernel function execution names before the target kernel function of the application program is executed, inserting CPU/GPU time measurement code segments, summarizing the counted time when the program is finished running, and displaying the collected time.
2. The system of claim 1, wherein the video memory leak analysis module specifically detects the following video memory leak types: (1) the applied memory space is forgotten to be released: aiming at calling only cudaMalloc and hipMalloc, and calling cudaFree and hipFare without matching; (2) the applied video memory space is released for multiple times: the cudaFree and hippree are called for releasing for multiple times aiming at the same video memory space of the application; (3) "field space": the pointer after the space is applied through cudaMalloc and hipCalloc changes the value of the pointer through other assignment operations, so that the video memory space applied at the beginning cannot be reached, and leakage is caused.
3. The system of claim 1, wherein the graphics memory leak analysis module is specifically configured to abstract source program code into a SPAN program intermediate expression, and then analyze SPAN.
4. The system of claim 1, wherein the video memory leak analysis module further uses video memory leak fault detection, comprising:
(1) converting a source program into a source program abstract node set;
(2) constructing an abstract node tree according to the source program abstract node set;
(3) starting to analyze from the root node of the abstract node tree, and establishing and maintaining a pointer address mapping Set according to 3P-M Set operation functions in the analyzing process;
(4) executing a check function after the leaf node is executed, and returning a corresponding result;
(5) deeply traversing the abstract node tree;
(6) and (5) circulating the steps (3) to (5) until the depth traversal is completed.
5. An application performance analysis method is characterized by comprising the following steps:
the method comprises the steps of performing addition, deletion and change operations on a pointer address mapping set by analyzing an abstract syntax tree of a static program to record the operation on the video memory; whether a pointer is available or a video memory address which is not released is analyzed in the pointer address mapping set; and
capturing kernel function execution names needing to be counted through corresponding interfaces, capturing before target kernel functions of application programs are executed, inserting CPU/GPU time measurement code segments, summarizing counted time when the programs are operated, and displaying.
6. The method of claim 5, wherein the following types of memory leaks are detected: (1) the applied memory space is forgotten to be released: aiming at calling only cudaMalloc and hipMalloc, and calling cudaFree and hipFare without matching; (2) the applied video memory space is released for multiple times: the cudaFree and hippree are called for releasing for multiple times aiming at the same video memory space of the application; (3) "field space": the pointer after the space is applied through cudaMalloc and hipCalloc changes the value of the pointer through other assignment operations, so that the video memory space applied at the beginning cannot be reached, and leakage is caused.
7. The method of claim 5, wherein the source program code is abstracted into SPAN program intermediate expressions, and SPAN is analyzed.
8. The method of claim 5, further comprising the step of detecting a memory leak fault, comprising the steps of:
(1) converting a source program into a source program abstract node set;
(2) constructing an abstract node tree according to the source program abstract node set;
(3) starting to analyze from the root node of the abstract node tree, and establishing and maintaining a pointer address mapping Set according to 3P-M Set operation functions in the analyzing process;
(4) executing a check function after the leaf node is executed, and returning a corresponding result;
(5) deeply traversing the abstract node tree;
(6) and (5) circulating the steps (3) to (5) until the depth traversal is completed.
CN202010383480.XA 2020-05-08 2020-05-08 Application performance analysis system and method Pending CN111611158A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010383480.XA CN111611158A (en) 2020-05-08 2020-05-08 Application performance analysis system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010383480.XA CN111611158A (en) 2020-05-08 2020-05-08 Application performance analysis system and method

Publications (1)

Publication Number Publication Date
CN111611158A true CN111611158A (en) 2020-09-01

Family

ID=72201487

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010383480.XA Pending CN111611158A (en) 2020-05-08 2020-05-08 Application performance analysis system and method

Country Status (1)

Country Link
CN (1) CN111611158A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112083956A (en) * 2020-09-15 2020-12-15 哈尔滨工业大学 Heterogeneous platform-oriented automatic management system for complex pointer data structure
WO2023143426A1 (en) * 2022-01-28 2023-08-03 清华大学 Performance analysis programming framework, method and apparatus

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590329A (en) * 1994-02-04 1996-12-31 Lucent Technologies Inc. Method and apparatus for detecting memory access errors
CN101017458A (en) * 2007-03-02 2007-08-15 北京邮电大学 Software safety code analyzer based on static analysis of source code and testing method therefor
CN104133733A (en) * 2014-07-29 2014-11-05 北京航空航天大学 Memory error detection method
US20150169226A1 (en) * 2013-12-17 2015-06-18 Xipeng Shen Technologies for persistent memory programming
CN106294156A (en) * 2016-08-11 2017-01-04 北京邮电大学 A kind of static code fault detection analysis method and device
CN107608885A (en) * 2017-09-13 2018-01-19 郑州云海信息技术有限公司 Localization method, device, system and the readable storage medium storing program for executing of memory overflow point

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590329A (en) * 1994-02-04 1996-12-31 Lucent Technologies Inc. Method and apparatus for detecting memory access errors
CN101017458A (en) * 2007-03-02 2007-08-15 北京邮电大学 Software safety code analyzer based on static analysis of source code and testing method therefor
US20150169226A1 (en) * 2013-12-17 2015-06-18 Xipeng Shen Technologies for persistent memory programming
CN104133733A (en) * 2014-07-29 2014-11-05 北京航空航天大学 Memory error detection method
CN106294156A (en) * 2016-08-11 2017-01-04 北京邮电大学 A kind of static code fault detection analysis method and device
CN107608885A (en) * 2017-09-13 2018-01-19 郑州云海信息技术有限公司 Localization method, device, system and the readable storage medium storing program for executing of memory overflow point

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
叶俊民等: "内存泄漏故障静态分析研究", 《计算机科学》 *
张威等: "基于指针分析的内存泄露故障测试方法研究", 《计算机应用研究》 *
张威等: "基于指针映射集的动态内存故障测试方法研究", 《计算机学报》 *
程润伟等: "《CUDA C编程权威指南》", 30 June 2017 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112083956A (en) * 2020-09-15 2020-12-15 哈尔滨工业大学 Heterogeneous platform-oriented automatic management system for complex pointer data structure
CN112083956B (en) * 2020-09-15 2022-12-09 哈尔滨工业大学 Heterogeneous platform-oriented automatic management system for complex pointer data structure
WO2023143426A1 (en) * 2022-01-28 2023-08-03 清华大学 Performance analysis programming framework, method and apparatus

Similar Documents

Publication Publication Date Title
CN112100054B (en) Data management and control oriented program static analysis method and system
CN102073589B (en) Code static analysis-based data race detecting method and system thereof
CN100517235C (en) Method and system for detecting potential race conditions in multithreaded programs
CN110941528B (en) Log buried point setting method, device and system based on fault
CN101710378B (en) Software security flaw detection method based on sequential pattern mining
CN100405294C (en) System, method and program product to optimize code during run time
US8504996B2 (en) Method and computer programming product for detecting memory leaks
CN108153587B (en) Slow task reason detection method for big data platform
CN102063328B (en) System for detecting interrupt-driven type program data competition
CN102243609A (en) Embedded software-based test analysis method and system
US20120054722A1 (en) Trace generating unit, system, and program of the same
US8141082B2 (en) Node-based representation of multi-threaded computing environment tasks, and node-based data race evaluation
CN111611158A (en) Application performance analysis system and method
CN103186463B (en) Determine the method and system of the test specification of software
CN116431476A (en) JVM fuzzy test method based on code context variation
US20040128661A1 (en) Automatic data locality optimization for non-type-safe languages
CN114816971A (en) Data processing method, related equipment and storage medium
CN112445706A (en) Program abnormal code acquisition method and device, electronic equipment and storage medium
CN115456628A (en) Intelligent contract viewing method and device based on block chain, storage medium and equipment
CN115098355A (en) Historical data drive-based JVM test program generation method
CN111666216B (en) Intelligent contract analysis method and device
CN112445512A (en) Hotspot analysis method and device for program codes
CN111984311A (en) Software structure reproduction method based on running log
CN113204765B (en) Method and system for testing HyperLegger Fabric chain code
CN109308256A (en) A kind of java dynamically analyzing of program method, equipment and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination