KR101674787B1 - System and method for measuring performance of program - Google Patents

System and method for measuring performance of program Download PDF

Info

Publication number
KR101674787B1
KR101674787B1 KR1020150000774A KR20150000774A KR101674787B1 KR 101674787 B1 KR101674787 B1 KR 101674787B1 KR 1020150000774 A KR1020150000774 A KR 1020150000774A KR 20150000774 A KR20150000774 A KR 20150000774A KR 101674787 B1 KR101674787 B1 KR 101674787B1
Authority
KR
South Korea
Prior art keywords
functional block
functional blocks
functional
performance
program
Prior art date
Application number
KR1020150000774A
Other languages
Korean (ko)
Other versions
KR20160084560A (en
Inventor
김재진
하승완
최정호
박영진
Original Assignee
삼성에스디에스 주식회사
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 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020150000774A priority Critical patent/KR101674787B1/en
Publication of KR20160084560A publication Critical patent/KR20160084560A/en
Application granted granted Critical
Publication of KR101674787B1 publication Critical patent/KR101674787B1/en

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/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/143Reconfiguring to eliminate the error with loss of software functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

프로그램 성능 측정 시스템 및 방법이 개시된다. 본 발명의 일 실시예에 따른 프로그램 성능 측정 시스템은, 프로그램을 구성하는 하나 이상의 기능 블록 각각에 상기 기능 블록의 성능을 측정하기 위한 측정 코드를 삽입하는 코드 삽입부; 및 상기 프로그램의 실행시 상기 하나 이상의 기능 블록 중 상기 측정 코드에 의하여 성능 저하 기능 블록으로 판단된 기능 블록의 정보를 수집하는 수집부를 포함한다.A program performance measurement system and method are disclosed. A program performance measurement system according to an embodiment of the present invention includes: a code insertion unit for inserting a measurement code for measuring the performance of the functional block into each of at least one functional block constituting a program; And a collecting unit for collecting information on the functional blocks determined as the performance degrading functional blocks by the measurement code among the one or more functional blocks when the program is executed.

Description

프로그램의 성능 측정 시스템 및 방법{SYSTEM AND METHOD FOR MEASURING PERFORMANCE OF PROGRAM}[0001] SYSTEM AND METHOD FOR MEASURING PERFORMANCE OF PROGRAM [0002]

본 발명의 실시예들은 프로그램의 성능을 효율적으로 측정하기 위한 기술과 관련된다.
Embodiments of the present invention relate to techniques for efficiently measuring the performance of a program.

어플리케이션 성능 관리(Application Performance Management ; APM) 또는 응용 프로그램 성능 관리는 응용 프로그램의 성능과 서비스 이용성을 감시하고 관리하는데 초점을 둔 시스템 관리 원칙을 의미한다. 최근, 사용자에게 제공하는 서비스가 좀 더 다양해지고 복잡해짐에 따라, 사용자가 원하는 트랜잭션(transaction)을 지체없이 실행하기 위한 프로그램 성능 관리 기술의 중요성이 커지고 있다. 특히, 대용량의 서비스를 제공하는 대규모 시스템의 경우, 프로그램의 장애 원인을 신속하게 발견하고 이를 처리하는 것이 매우 중요하며, 또한 이 과정에서 시스템에 걸리는 부하를 최소화할 수 있어야 한다.Application Performance Management (APM) or application performance management refers to system management principles that focus on monitoring and managing application performance and service availability. Recently, as the service provided to the user becomes more diverse and complex, a program performance management technique for executing a desired transaction without delay is becoming more important. In particular, in the case of a large-scale system providing a large-capacity service, it is very important to quickly find out the cause of the program failure and to handle it, and it is also necessary to minimize the load on the system in this process.

그러나, 종래 프로그램 성능 관리 기술의 경우 프로파일링을 통해 트랜잭션의 대략적인 구간에 대한 프로그램의 성능 정보를 사용자(또는 시스템 관리자)에게 제공하는 데 그쳤으며, 성능 저하 또는 이상이 발생한 기능 블록(예를 들어, 메소드(method))의 정확한 위치를 실시간으로 사용자에게 제공할 수 없었다. 이에 따라, 시스템 관리자는 성능 저하 또는 이상이 발생한 기능 블록의 정확한 위치를 파악하기 위한 2차 분석을 수행하여야 하였으며, 이 과정에서 시간 및 비용이 낭비되는 문제점이 있었다. 또한, 종래 프로그램 성능 관리 기술의 경우 성능 저하 또는 이상이 발생한 기능 블록의 정확한 위치를 파악하기 위해, 분석한 프로그램의 성능 정보 모두를 사용자에게 제공하여야 했으며, 이 과정에서 시스템에 걸리는 부하가 가중되는 문제점이 있었다.
However, in the case of the conventional program performance management technology, the performance information of the program for the approximate interval of the transaction is provided to the user (or the system administrator) through profiling. , Method (method)) can not be provided to the user in real time. Accordingly, the system administrator has to perform a secondary analysis to determine the exact position of the functional block in which the performance degradation or abnormality occurs, and the time and cost are wasted in this process. Further, in the case of the conventional program performance management technology, in order to grasp the exact position of the functional block in which the performance degradation or abnormality has occurred, all of the performance information of the analyzed program has to be provided to the user. In this process, .

한국등록특허공보 제10-0503776호(2005.07.26)Korean Patent Registration No. 10-0503776 (July 26, 2005)

본 발명의 실시예들은 성능 저하가 발생한 기능 블록을 선별하고, 성능 저하가 발생한 기능 블록의 정확한 위치를 사용자에게 실시간으로 제공하기 위한 것이다.
Embodiments of the present invention are to select a functional block in which a performance degradation has occurred and provide an accurate position of the functional block in which performance degradation occurs to the user in real time.

본 발명의 예시적인 실시예에 따르면, 프로그램을 구성하는 하나 이상의 기능 블록 각각에 상기 기능 블록의 성능을 측정하기 위한 측정 코드를 삽입하는 코드 삽입부; 및 상기 프로그램의 실행시 상기 하나 이상의 기능 블록 중 상기 측정 코드에 의하여 성능 저하 기능 블록으로 판단된 기능 블록의 정보를 수집하는 수집부를 포함하는, 프로그램의 성능 측정 시스템이 제공된다.According to an exemplary embodiment of the present invention, a code insertion unit for inserting a measurement code for measuring the performance of the functional block into each of at least one functional block constituting a program; And a collecting unit for collecting information of a functional block determined as a performance degrading functional block by the measurement code among the one or more functional blocks upon execution of the program.

상기 측정 코드는, 상기 기능 블록의 실행시 상기 기능 블록의 실행 시작 시각 및 실행 종료 시각의 차이를 계산하고 상기 차이가 설정된 임계치 이상인 경우 상기 기능 블록을 상기 성능 저하 기능 블록으로 판단하기 위한 하나 이상의 명령어를 포함할 수 있다.Wherein the measurement code includes at least one instruction for calculating a difference between an execution start time and an execution end time of the functional block when the functional block is executed and determining the functional block as the performance reduction functional block when the difference is equal to or greater than a set threshold value . ≪ / RTI >

상기 프로그램의 성능 측정 시스템은, 상기 측정 코드의 삽입 전, 상기 하나 이상의 기능 블록 각각의 정보를 획득하는 전처리부를 더 포함할 수 있다.The performance measurement system of the program may further include a preprocessor for acquiring information on each of the one or more functional blocks before inserting the measurement code.

상기 코드 삽입부는, 상기 전처리부에 의하여 획득된 상기 기능 블록의 정보를 상기 측정 코드에 포함시켜 상기 기능 블록에 삽입할 수 있다.The code inserting unit may insert the information of the functional block obtained by the preprocessing unit into the functional block by inserting the information into the functional code.

상기 코드 삽입부는, 바이트 코드 인스트루먼트(Byte Code Instrument) 수단을 통해 상기 측정 코드를 상기 기능 블록에 삽입할 수 있다.The code inserting unit may insert the measurement code into the functional block through a bytecode instrument.

상기 기능 블록의 정보는, 상기 기능 블록의 명칭 및 상기 기능 블록이 속한 클래스의 명칭 중 하나 이상을 포함할 수 있다.The information of the functional block may include at least one of a name of the functional block and a name of a class to which the functional block belongs.

상기 프로그램의 성능 측정 시스템은, 상기 성능 저하 기능 블록으로 판단된 기능 블록의 정보를 디스플레이하는 디스플레이부를 더 포함할 수 있다.The performance measurement system of the program may further include a display unit for displaying information of the functional blocks determined as the performance reduction functional blocks.

본 발명의 다른 예시적인 실시예에 따르면, 프로그램을 구성하는 하나 이상의 기능 블록 각각에 상기 기능 블록의 성능을 측정하기 위한 측정 코드를 삽입하는 단계; 및 상기 프로그램의 실행시 상기 하나 이상의 기능 블록 중 상기 측정 코드에 의하여 성능 저하 기능 블록으로 판단된 기능 블록의 정보를 수집하는 단계를 포함하는, 프로그램의 성능 측정 방법이 제공된다.According to another exemplary embodiment of the present invention, there is provided a method for testing a function block, comprising: inserting a measurement code for measuring the performance of the functional block into each of at least one functional block constituting a program; And collecting information on a functional block determined as a performance degrading functional block by the measurement code among the one or more functional blocks at the time of execution of the program.

상기 측정 코드는, 상기 기능 블록의 실행시 상기 기능 블록의 실행 시작 시각 및 실행 종료 시각의 차이를 계산하고 상기 차이가 설정된 임계치 이상인 경우 상기 기능 블록을 상기 성능 저하 기능 블록으로 판단하기 위한 하나 이상의 명령어를 포함할 수 있다.Wherein the measurement code includes at least one instruction for calculating a difference between an execution start time and an execution end time of the functional block when the functional block is executed and determining the functional block as the performance reduction functional block when the difference is equal to or greater than a set threshold value . ≪ / RTI >

상기 프로그램의 성능 측정 방법은, 상기 측정 코드를 삽입하는 단계 이전에, 상기 하나 이상의 기능 블록 각각의 정보를 획득하는 단계를 더 포함할 수 있다.The method for measuring the performance of the program may further include acquiring information on each of the one or more function blocks before the step of inserting the measurement code.

상기 측정 코드를 삽입하는 단계는, 획득된 상기 기능 블록의 정보를 상기 측정 코드에 포함시켜 상기 기능 블록에 삽입할 수 있다.The step of inserting the measurement code may include information on the obtained function block in the measurement code and insert the measurement code into the function block.

상기 측정 코드를 삽입하는 단계는, 바이트 코드 인스트루먼트(Byte Code Instrument) 수단을 통해 상기 측정 코드를 상기 기능 블록에 삽입할 수 있다.The step of inserting the measurement code may insert the measurement code into the function block by means of a by-code instrument.

상기 기능 블록의 정보는, 상기 기능 블록의 명칭 및 상기 기능 블록이 속한 클래스의 명칭 중 하나 이상을 포함할 수 있다.The information of the functional block may include at least one of a name of the functional block and a name of a class to which the functional block belongs.

상기 프로그램의 성능 측정 방법은, 상기 성능 저하 기능 블록으로 판단된 기능 블록의 정보를 수집하는 단계 이후, 상기 성능 저하 기능 블록으로 판단된 기능 블록의 정보를 디스플레이하는 단계를 더 포함할 수 있다.
The method of measuring the performance of the program may further include displaying information of the functional block determined as the performance degrading functional block, after the step of collecting information of the functional block determined as the performance degrading functional block.

본 발명의 실시예들에 따르면, 성능 저하로 판단된 기능 블록의 명칭과 해당 기능 블록이 속한 클래스의 명칭을 선별하여 사용자에게 실시간으로 제공함으로써, 사용자는 서비스의 장애 원인을 정확하게 파악하고 이에 대해 신속하게 대처할 수 있다. 이에 따라, 장애 원인의 분석 시간이 단축될 수 있으며, 이는 궁극적으로 서비스의 품질 향상을 초래한다. 특히, 대용량의 서비스를 제공하는 대규모 시스템에서는 그 시간 및 비용적 효과가 더욱 커지게 된다.
According to the embodiments of the present invention, the name of the functional block determined to be degraded and the name of the class to which the functional block belongs are selected and provided to the user in real time, so that the user can accurately grasp the cause of the failure of the service, . As a result, the analysis time of the cause of the failure can be shortened, which ultimately leads to an improvement in the quality of the service. Particularly, in a large-scale system that provides a large-capacity service, the time and cost effect becomes larger.

도 1은 본 발명의 일 실시예에 따른 프로그램의 성능 측정 시스템을 설명하기 위한 블록도
도 2는 본 발명의 일 실시예에 따른 프로그램의 성능 측정 시스템에 의하여 트랜잭션 흐름 내의 성능 저하 메소드를 검출하는 예시를 나타낸 도면
도 3은 본 발명의 일 실시예에 따른 프로그램의 성능 측정 방법을 설명하기 위한 흐름도
1 is a block diagram for explaining a performance measurement system of a program according to an embodiment of the present invention;
2 is a diagram illustrating an example of detecting a degradation method in a transaction flow by a program performance measurement system according to an embodiment of the present invention;
3 is a flowchart illustrating a method of measuring a performance of a program according to an embodiment of the present invention.

이하, 도면을 참조하여 본 발명의 구체적인 실시예를 설명하기로 한다. 그러나 이는 예시적 실시예에 불과하며 본 발명은 이에 한정되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. However, this is an exemplary embodiment only and the present invention is not limited thereto.

본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In the following description, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification.

본 발명의 기술적 사상은 청구범위에 의하여 결정되며, 이하 실시예는 진보적인 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.
The technical idea of the present invention is determined by the claims, and the following embodiments are merely a means for effectively explaining the technical idea of the present invention to a person having ordinary skill in the art to which the present invention belongs.

도 1은 본 발명의 일 실시예에 따른 프로그램의 성능 측정 시스템(100)을 설명하기 위한 블록도이다. 구체적인 설명에 앞서, 이하에서 언급될 프로그램(150)은 자바, C++, C# 등과 같은 객체 지향 언어(object-oriented language)로 작성된 소프트웨어 또는 어플리케이션일 수 있으며, 하나 이상의 기능 블록으로 구성될 수 있다. 여기서, 기능 블록이란 메소드(method), 함수(function) 등과 같이 특정 기능을 수행하기 위한 명령어들의 집합을 의미한다. 이하에서는, 설명의 편의상 본 발명의 일 실시예에 따른 프로그램(150)이 자바로 작성된 어플리케이션 또는 소프트웨어인 것으로 가정하며, 기능 블록은 자바의 메소드인 것으로 가정한다. 다만, 프로그램(150)의 작성 언어가 이에 한정되는 것은 아니며, 프로그램(150)은 예를 들어, C, C++ 등과 같은 다른 프로그래밍 언어로 작성될 수도 있다.FIG. 1 is a block diagram illustrating a program performance measurement system 100 according to an embodiment of the present invention. Prior to specific description, the program 150 to be referred to below may be software or application written in an object-oriented language such as Java, C ++, C #, etc., and may be composed of one or more functional blocks. Here, the function block refers to a set of instructions for performing a specific function such as a method, a function, and the like. Hereinafter, for convenience of description, it is assumed that the program 150 according to an embodiment of the present invention is an application or software written in Java, and that the function block is a Java method. However, the programming language of the program 150 is not limited thereto, and the program 150 may be written in another programming language such as C, C ++, or the like.

본 발명의 일 실시예에 따른 프로그램의 성능 측정 시스템(100)은 모니터링 및 성능 측정의 대상이 되는 대상 클래스(여기서는, 클래스 1 내지 클래스 n을 대상 클래스로 정의함)의 소스 코드(원시 코드)를 수정하지 않으면서 성능 저하 또는 이상이 발생한 기능 블록을 효율적으로 검출하기 위한 것이다. 도 1에 도시된 바와 같이, 대상 클래스 각각은 하나 이상의 메소드를 포함할 수 있다. 여기서, 클래스는 일 집단에 속하는 속성(attribute)과 행위(behavior)를 정의한 것으로 다른 클래스 또는 외부 요소와 독립적으로 설계된다. 객체(object)는 클래스의 인스턴스로(instance)서, 자신 고유의 속성을 가지며 클래스에서 정의한 행위를 수행할 수 있다. 메소드는 클래스로부터 생성된 객체를 사용하는 방법으로서 객체에 명령을 내리는 메시지이다. The performance measurement system 100 of the program according to the embodiment of the present invention compares a source code (source code) of a target class (here, class 1 to class n is defined as a target class) This is to efficiently detect a functional block in which a performance degradation or an abnormality occurs without making any modification. As shown in FIG. 1, each of the target classes may include one or more methods. Here, a class defines attributes and behaviors belonging to a group, and is designed independently of other classes or external elements. An object is an instance of a class, has its own properties, and can perform the actions defined by the class. A method is a method of using an object created from a class to send an instruction to an object.

도 1에 도시된 바와 같이, 프로그램의 성능 측정 시스템(100)은 전처리부(102), 코드 삽입부(104), 수집부(106) 및 디스플레이부(108)를 포함한다.1, the program performance measurement system 100 includes a preprocessing unit 102, a code inserting unit 104, a collecting unit 106, and a display unit 108. The pre-

전처리부(102)는 기능 블록 각각의 정보를 수집한다. 기능 블록의 정보는 기능 블록의 명칭 및 기능 블록이 속한 클래스의 명칭 중 하나 이상을 포함할 수 있다. 전처리부(102)는 후술할 코드 삽입부(104)의 측정 코드 삽입 전, 기능 블록 각각의 정보를 수집할 수 있다. 전처리부(102)는 예를 들어, 자바 가상 머신(Java Virtual Machine ; JVM, 미도시)에 대상 클래스의 명칭 및 대상 클래스 내 각 메소드의 명칭을 질의하고, 자바 가상 머신으로부터 이를 수집하여 저장할 수 있다. 자바 가상 머신은 자바로 작성된 프로그램을 해석하여 실행하는 소프트웨어로서, 예를 들어 전처리부(102)로부터의 질의에 따라 대상 클래스의 명칭 및 대상 클래스 내 각 메소드의 명칭을 파악하여 전처리부(102)로 제공할 수 있다. 후술할 바와 같이, 코드 삽입부(104)는 전처리부(102)에 의하여 획득된 기능 블록의 정보를 측정 코드에 포함시켜 기능 블록에 삽입할 수 있다. 기능 블록에 삽입된 기능 블록의 정보는 성능 저하 기능 블록의 정확한 위치를 파악하는데 사용될 수 있다. The preprocessing unit 102 collects information on each of the functional blocks. The information of the function block may include at least one of the name of the function block and the name of the class to which the function block belongs. The preprocessing unit 102 may collect information on each of the functional blocks before inserting the measurement code of the code inserting unit 104, which will be described later. The preprocessing unit 102 may inquire, for example, the name of the target class and the names of the respective methods in the target class, and may collect and store them from the Java virtual machine, for example, in a Java Virtual Machine (JVM) . The Java virtual machine is software for interpreting and executing a program written in Java. For example, the Java virtual machine grasps the name of a target class and the name of each method in a target class according to a query from the preprocessing unit 102, . As will be described later, the code inserting unit 104 can insert the information of the functional blocks obtained by the preprocessing unit 102 into the functional blocks by including them in the measurement code. The information of the functional blocks inserted in the functional blocks can be used to determine the exact positions of the functional blocks.

코드 삽입부(104)는 하나 이상의 기능 블록 각각에 측정 코드를 삽입한다. 여기서 측정 코드는, 기능 블록의 실행시 기능 블록의 실행 시작 시각 및 실행 종료 시각의 차이를 계산하고 상기 시각 차이가 설정된 임계치(예를 들어, 0.0001) 이상인 경우 해당 기능 블록을 성능 저하 기능 블록으로 판단하기 위한 하나 이상의 명령어를 포함할 수 있다. 예를 들어, 메소드의 시작 부분에는 프로그램(150)의 실행시 메소드의 실행 시작 시각을 기록하는 명령어가 삽입되며, 메소드의 끝 부분에는 프로그램(150)의 실행시 메소드의 실행 종료 시각을 기록하는 명령어, 메소드의 실행 시작 시각과 메소드의 실행 종료 시각과의 차이를 계산하는 명령어, 상기 차이가 설정된 임계치 이상인지 여부를 판단하고 상기 차이가 설정된 임계치 이상인 경우 해당 메소드를 성능 저하 메소드로 판단하는 명령어 등이 삽입될 수 있다. 한편, 코드 삽입부(104)는 각 기능 블록에 동일한 임계치를 부여할 수 있으나, 이와 달리 각 기능 블록별로 서로 다른 임계치를 부여할 수도 있다. The code inserting unit 104 inserts a measurement code into each of one or more functional blocks. Here, the measurement code calculates the difference between the execution start time and the execution end time of the functional block when the functional block is executed. When the time difference is equal to or larger than the set threshold (for example, 0.0001) And < / RTI > For example, at the beginning of the method, a command to record the execution start time of the method at the time of execution of the program 150 is inserted. At the end of the method, a command to record the execution end time of the method at the time of execution of the program 150 A command for calculating a difference between an execution start time of the method and an execution end time of the method, a command for determining whether the difference is equal to or greater than the set threshold value and determining the method as a performance degradation method if the difference is equal to or greater than the set threshold value Can be inserted. On the other hand, the code inserting unit 104 may assign the same threshold value to each functional block, but different threshold value may be given to each functional block.

또한, 코드 삽입부(104)는 전처리부(102)에 의하여 획득된 기능 블록의 정보를 측정 코드에 포함시켜 기능 블록에 삽입할 수 있다. 상술한 바와 같이, 기능 블록의 정보는 기능 블록의 명칭 및 해당 기능 블록이 속한 클래스의 명칭 중 하나 이상을 포함할 수 있다. 이때, 각 기능 블록에 삽입된 기능 블록의 정보는 메모리(미도시)에 해당 기능 블록의 명칭 및 해당 기능 블록이 속한 클래스의 명칭을 질의하는 메소드 또는 함수 형태로 이루어지는 것이 아니라, 해당 기능 블록의 명칭과 해당 기능 블록이 속한 클래스의 명칭을 정의하는 형태로 이루어진다. 이에 따라, 기능 블록은 실행 과정에서 자신의 명칭 및 해당 클래스의 명칭을 메모리에 별도로 질의할 필요가 없게 되며, 이는 대용량 시스템에서 기능 블록 추가로 인해 서비스 부하가 증가하는 것을 방지한다. 다음은 코드 삽입부(104)에 의하여 기능 블록에 삽입되는 측정 코드의 예시이다.
In addition, the code inserting unit 104 may insert the information of the functional blocks obtained by the preprocessing unit 102 into the functional blocks by including them in the measurement codes. As described above, the information of the function block may include at least one of the name of the function block and the name of the class to which the function block belongs. At this time, the information of the function blocks inserted into the respective function blocks is not a method or a function for inquiring the name of the corresponding function block and the name of the class to which the corresponding function block belongs in the memory (not shown) And the name of the class to which the corresponding function block belongs. Accordingly, the functional block does not need to inquire the name of the functional block and the name of the corresponding class separately in the execution process. This prevents the increase of the service load due to the addition of the functional block in the large capacity system. The following is an example of the measurement code inserted into the function block by the code inserting unit 104. [

class Sell // 클래스 선언class Sell // Class declaration

{{

int numofObject = 30; // 변수 정의int numofObject = 30; // Define variables

int myMoney = 0 ; // 변수 정의int myMoney = 0; // Define variables

public int saleva(int money) // 메소드 선언public int saleva (int money) // method declaration

{{

long start = System.currentTimeMillis(); // 메소드의 실행 시작 시각을 기록 long start = System.currentTimeMillis (); // record the start time of method execution

char methodname = 'saleva' // 메소드의 명칭 정의 char methodname = 'saleva' // Name of Method Definition

char classname = 'Sell' // 메소드가 속한 클래스의 명칭 정의char classname = 'Sell' // Define the name of the class to which the method belongs

int num = money/1000; // 메소드 내용int num = money / 1000; // Method contents

numofObject -= price; // 메소드 내용numofObject - = price; // Method contents

return price; // 메소드 내용return price; // Method contents

long end = System.currentTimeMillis(); // 메소드의 실행 종료 시각 기록 long end = System.currentTimeMillis (); // Record execution end time of method

long elapsedTime = (end-start)/1000.0; // 메소드의 실행 시작 시각과 실행 종료 시각과의 차이 계산long elapsedTime = (end-start) / 1000.0; // Calculate the difference between the start and end times of the method

if(elapsedTime>0.00001) // 메소드의 실행 시작 시각과 실행 종료 시각과의 차이가 설정된 임계치 이상이 되는지의 여부 판단 if (elapsedTime> 0.00001) // Determine whether the difference between the execution start time and the execution end time of the method is equal to or greater than the set threshold value

System.out.println(methodname); // 메소드 명칭 출력System.out.println (methodname); // Output method name

System.out.println(classname); // 메소드가 속한 클래스 명칭 출력System.out.println (classname); // Output the class name to which the method belongs

}}

public void Buy(sell price, int money) // 메소드 선언public void Buy (sell price, int money) // method declaration

......

}
}

여기서는, 기능 블록의 실행 시작 시각과 실행 종료 시각의 차이가 설정된 임계치 이상이 되는 경우에만 해당 기능 블록의 명칭과 해당 기능 블록이 속한 클래스 명칭을 출력하는 것으로 기재하였으나, 이는 하나의 실시예에 불과할 뿐 이에 한정되는 것은 아니다. 예를 들어, 측정 코드는 각 기능 블록의 명칭과 해당 기능 블록이 속한 클래스의 명칭을 모두 출력하도록 구성되되, 후술할 수집부(106)는 측정 코드에 의하여 성능 저하 기능 블록으로 판단된 기능 블록의 명칭 및 해당 기능 블록이 속한 명칭을 선별하여 수집할 수도 있다.In this example, only when the difference between the execution start time and the execution end time of the functional block becomes equal to or greater than the set threshold value, the name of the functional block and the class name to which the functional block belongs are outputted. However, But is not limited thereto. For example, the measurement code is configured to output the name of each functional block and the name of the class to which the functional block belongs, and the collecting unit 106, which will be described later, The name and the name to which the function block belongs can be selected and collected.

한편, 코드 삽입부(104)는 바이트 코드 인스트루먼트(Byte Code Instrument) 수단을 통해 측정 코드를 각 기능 블록에 삽입할 수 있다. 바이트 코드 인스트루먼트란 프로그램(150)의 소스 코드(원시 코드)의 수정 없이 프로그램(150)의 실행 단계에서 특정 바이트 코드를 동적으로 삽입하는 기술을 의미한다. 바이트 코드는 자바 프로그램의 컴파일된 형태로서 자바 가산 머신에 의하여 실행될 수 있다. 코드 삽입부(104)는 소스 코드 레벨에서 측정 코드를 각 기능 블록에 삽입하는 것이 아니라 프로그램(150)의 실행 단계, 구체적으로는 프로그램(150)의 시작 준비 단계(또는 시작 직전)에서 바이트 코드 인스트루먼트 수단을 통해 측정 코드를 각 기능 블록에 삽입할 수 있다.On the other hand, the code inserting unit 104 may insert a measurement code into each functional block through a by-code instrument. Byte code instrument means a technique of dynamically inserting a specific bytecode at the execution stage of the program 150 without modifying the source code (source code) of the program 150. [ Bytecode is a compiled form of a Java program that can be executed by a Java additive machine. The code inserting section 104 does not insert the measurement code into each functional block at the source code level but at the execution stage of the program 150 and more specifically the start preparation stage (or just before the start of the program 150) The measurement code can be inserted into each function block by means of the means.

수집부(106)는 프로그램(150)의 실행시 하나 이상의 기능 블록 중 측정 코드에 의하여 성능 저하 기능 블록으로 판단된 기능 블록의 정보를 수집한다. 상술한 바와 같이, 코드 삽입부(104)에 의하여 각 기능 블록에 삽입된 측정 코드는 프로그램(150) 실행시 해당 기능 블록의 실행 시작 시각 및 실행 종료 시각의 차이를 계산하고, 상기 차이가 설정된 임계치 이상이 되는지의 여부에 따라 해당 기능 블록이 성능 저하 기능 블록인지의 여부를 판단하기 위한 명령어들을 포함할 수 있다. 만약, 해당 기능 블록의 실행 시작 시각과 실행 종료 시각의 차이가 설정된 임계치 이상이 되는 경우, 측정 코드는 해당 기능 블록의 명칭 및 해당 기능 블록이 속한 클래스의 명칭을 출력하도록 구성될 수 있다. 즉, 기능 블록의 응답 시간(실행 시작 시각과 실행 종료 시각의 차이)이 해당 기능 블록의 성능 저하 여부를 판단하는 기준이 된다. 수집부(106)는 측정 코드에 의하여 출력된 성능 저하 기능 블록의 명칭 및 성능 저하 기능 블록이 속한 클래스의 명칭을 수집할 수 있다. When the program 150 is executed, the collecting unit 106 collects information on the functional blocks determined as the performance degrading functional blocks by the measurement code among the one or more functional blocks. As described above, the measurement code inserted into each functional block by the code inserting unit 104 calculates the difference between the execution start time and the execution end time of the corresponding functional block when the program 150 is executed, Or whether the corresponding functional block is a performance degradation functional block according to whether the functional block is a performance degradation functional block or not. If the difference between the execution start time and the execution end time of the functional block becomes equal to or greater than the set threshold value, the measurement code may be configured to output the name of the functional block and the name of the class to which the functional block belongs. That is, the response time of the function block (the difference between the execution start time and the execution end time) is used as a criterion for judging whether or not the performance of the functional block deteriorates. The collection unit 106 may collect the names of the performance degradation function blocks output by the measurement code and the names of the classes to which the performance degradation function blocks belong.

만약, 측정 코드가 각 기능 블록의 명칭과 해당 기능 블록이 속한 클래스의 명칭을 모두 출력하는 경우, 수집부(106)는 측정 코드에 의하여 성능 저하 기능 블록으로 판단된 기능 블록의 명칭 및 해당 기능 블록이 속한 명칭을 선별하여 수집할 수도 있다. 이후, 수집부(106)는 수집한 성능 저하 기능 블록의 명칭 및 성능 저하 기능 블록이 속한 클래스의 명칭을 디스플레이부(108)로 전송할 수 있다.If the measurement code outputs both the name of each functional block and the name of the class to which the functional block belongs, the collecting unit 106 acquires the name of the functional block determined as a performance degradation functional block by the measurement code, You may collect these names by selecting them. Then, the collecting unit 106 may transmit the name of the collected performance degrading functional block and the name of the class to which the performance degrading functional block belongs to the display unit 108.

디스플레이부(108)는 수집부(106)로부터 수신한 성능 저하 기능 블록의 명칭 및 성능 저하 메소드가 속한 클래스의 명칭을 디스플레이함으로써, 문제가 발생한 기능 블록 및 클래스의 정확한 위치를 사용자에게 제공한다. 또한, 디스플레이부(108)는 성능 저하 기능 블록의 명칭을 트랜잭션별로 사용자에게 제공할 수 있으며, 이에 대해서는 도 2를 참조하여 후술하기로 한다. The display unit 108 displays the name of the performance degradation function block received from the collection unit 106 and the name of the class to which the degradation method belongs, thereby providing the user with the precise location of the functional block and the class where the problem occurred. In addition, the display unit 108 may provide the name of the performance reduction function block to the user for each transaction, which will be described later with reference to FIG.

본 발명의 실시예들에 따르면, 성능 저하로 판단된 기능 블록의 명칭과 해당 기능 블록이 속한 클래스의 명칭을 선별하여 사용자에게 실시간으로 제공함으로써, 사용자는 서비스의 장애 원인을 정확하게 파악하고 이에 대해 신속하게 대처할 수 있다. 이에 따라, 장애 원인의 분석 시간이 단축될 수 있으며, 이는 궁극적으로 서비스의 품질 향상을 초래한다. 특히, 대용량의 서비스를 제공하는 대규모 시스템에서는 그 시간 및 비용적 효과가 더욱 커지게 된다.
According to the embodiments of the present invention, the name of the functional block determined to be degraded and the name of the class to which the functional block belongs are selected and provided to the user in real time, so that the user can accurately grasp the cause of the failure of the service, . As a result, the analysis time of the cause of the failure can be shortened, which ultimately leads to an improvement in the quality of the service. Particularly, in a large-scale system that provides a large-capacity service, the time and cost effect becomes larger.

도 2는 본 발명의 일 실시예에 따른 프로그램의 성능 측정 시스템(100)에 의하여 트랜잭션 흐름 내의 성능 저하 메소드를 검출하는 예시를 나타낸 도면이다. 도 2에 도시된 바와 같이, 하나의 트랜잭션은 복수 개의 메소드가 결합된 형태로 나타날 수 있으며, 이는 다음과 같이 표현될 수 있다.
FIG. 2 is a diagram illustrating an example of detecting a degradation method in a transaction flow by a program performance measurement system 100 according to an embodiment of the present invention. As shown in FIG. 2, a transaction may be represented by a combination of a plurality of methods, which can be expressed as follows.

트랜잭션 1 : 메소드 1 → 메소드 2 → 메소드 4Transaction 1: Method 1 → Method 2 → Method 4

트랜잭션 2 : 메소드 1 → 메소드 3 → 메소드 4 → 메소드 5Transaction 2: Method 1 → Method 3 → Method 4 → Method 5

트랜잭션 3 : 메소드 1 → 메소드 5 → 메소드 6
Transaction 3: Method 1 → Method 5 → Method 6

코드 삽입부(104)에 의하여 각 메소드에 삽입된 측정 코드는 프로그램(150) 실행시 해당 메소드의 실행 시작 시각과 실행 종료 시각의 차이를 계산하고, 상기 차이가 설정된 임계치 이상이 되는지 여부를 판단할 수 있다. 만약, 해당 메소드의 실행 시작 시각과 실행 종료 시각의 차이가 설정된 임계치 이상이 되는 경우, 측정 코드는 해당 메소드의 명칭 및 해당 메소드가 속한 클래스의 명칭을 출력하도록 구성될 수 있으며, 수집부(106)는 성능 저하 메소드의 명칭 및 성능 저하 메소드가 속한 클래스의 명칭을 수집할 수 있다.The measurement code inserted into each method by the code inserting unit 104 calculates the difference between the execution start time and the execution end time of the corresponding method when the program 150 is executed and judges whether or not the difference is equal to or more than the set threshold value . If the difference between the execution start time and the execution end time of the method is equal to or greater than the set threshold value, the measurement code may be configured to output the name of the method and the name of the class to which the method belongs. Can collect the name of the degraded method and the name of the class to which the degraded method belongs.

만약, 이와 같은 과정에 의하여 메소드 2와 메소드 6이 성능 저하 메소드인 것으로 판단되는 경우, 수집부(106)는 성능 저하 메소드의 명칭(메소드 2, 메소드 6)뿐 아니라 성능 저하 메소드가 속한 트랜잭션의 명칭(트랜잭션 1, 트랜잭션 3)을 디스플레이부(108)로 제공할 수 있다. 이에 따라, 디스플레이부(108)는 성능 저하 메소드의 명칭, 성능 저하 메소드가 속한 클래스의 명칭 및 성능 저하 메소드가 속한 트랜잭션의 명칭을 사용자에게 디스플레이할 수 있다.
If it is determined that the method 2 and the method 6 are performance degradation methods by the above process, the collecting unit 106 acquires not only the names of the performance degradation methods (method 2 and method 6) (Transaction 1, transaction 3) to the display unit 108. [ Accordingly, the display unit 108 can display to the user the name of the degradation method, the name of the class to which the degradation method belongs, and the name of the transaction to which the degradation method belongs.

도 3은 본 발명의 일 실시예에 따른 프로그램의 성능 측정 방법을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a method of measuring a performance of a program according to an embodiment of the present invention.

먼저, 전처리부(102)는 기능 블록 각각의 정보를 획득한다(S302). 예를 들어, 전처리부(102)는 코드 삽입부(104)의 측정 코드 삽입 전, 자바 가상 머신(Java Virtual Machine ; JVM, 미도시)에 대상 클래스의 명칭 및 대상 클래스 내 각 메소드의 명칭을 질의하고, 자바 가상 머신으로부터 이를 수집하여 저장할 수 있다.First, the preprocessing unit 102 obtains information of each functional block (S302). For example, the preprocessing unit 102 queries the name of the target class and the name of each method in the target class to the Java Virtual Machine (JVM, not shown) before inserting the measurement code of the code inserting unit 104 , And can collect and store it from the Java virtual machine.

다음으로, 코드 삽입부(104)는 기능 블록의 정보를 측정 코드에 포함시켜 각 기능 블록에 삽입한다(S304). 측정 코드는 기능 블록의 성능 저하를 판단하기 위한 명령어들의 집합로서, 각 기능 블록의 시작 부분과 끝 부분에 각각 삽입되어 프로그램(150)의 실행시 각 기능 블록의 실행 시작 시각과 실행 종료 시각을 기록하고, 각 기능 블록의 실행 시작 시각과 실행 종료 시각 차이가 설정된 임계치 이상인지의 여부를 판단하도록 구성될 수 있다. 또한, 측정 코드에는 기능 블록의 정보를 정의하는 명령어가 포함될 수 있다. 기능 블록의 정보는 기능 블록의 명칭 및 해당 기능 블록이 속한 클래스의 명칭 중 하나 이상을 포함할 수 있다. 이때, 기능 블록의 정보는 함수 또는 메소드 형태가 아닌 해당 기능 블록의 명칭과 해당 기능 블록이 속한 클래스의 명칭을 정의하는 형태로 이루어진다. 이에 따라, 기능 블록은 실행 과정에서 자신의 명칭 및 해당 클래스의 명칭을 메모리에 별도로 질의할 필요가 없게 되며, 이는 대용량 시스템에서 기능 블록 추가로 인해 서비스 부하가 증가하는 것을 방지한다.Next, the code inserting unit 104 inserts the information of the function block into each function block by inserting the information of the function block into the measurement code (S304). The measurement code is a set of instructions for judging a performance degradation of a functional block and is inserted at the beginning and end of each functional block to record the execution start time and execution end time of each functional block at the time of execution of the program 150 And determine whether the difference between the execution start time and the execution end time of each functional block is equal to or greater than a set threshold value. Further, the measurement code may include an instruction to define information of the functional block. The information of the function block may include at least one of the name of the function block and the name of the class to which the corresponding function block belongs. In this case, the information of the function block is not a function or a method type but a name that defines the name of the corresponding function block and the name of the class to which the function block belongs. Accordingly, the functional block does not need to inquire the name of the functional block and the name of the corresponding class separately in the execution process. This prevents the increase of the service load due to the addition of the functional block in the large capacity system.

한편, 코드 삽입부(104)는 바이트 코드 인스트루먼트(Byte Code Instrument) 수단을 통해 측정 코드를 각 기능 블록에 삽입할 수 있다. 바이트 코드 인스트루먼트란 프로그램(150)의 소스 코드(원시 코드)의 수정 없이 프로그램(150)의 실행 단계에서 특정 바이트 코드를 동적으로 삽입하는 기술을 의미한다. On the other hand, the code inserting unit 104 may insert a measurement code into each functional block through a by-code instrument. Byte code instrument means a technique of dynamically inserting a specific bytecode at the execution stage of the program 150 without modifying the source code (source code) of the program 150. [

다음으로, 수집부(106)는 성능 저하 기능 블록으로 판단된 기능 블록의 명칭 및 성능 저하 기능 블록이 속한 클래스의 명칭을 수집한다(S306). 상술한 바와 같이, 해당 기능 블록의 실행 시작 시각과 실행 종료 시각의 차이가 설정된 임계치(예를 들어, 0.0001) 이상이 되는 경우, 측정 코드는 해당 기능 블록의 명칭 및 해당 기능 블록이 속한 클래스의 명칭을 출력하도록 구성될 수 있으며, 수집부(106)는 측정 코드에 의하여 출력된 성능 저하 기능 블록의 명칭 및 성능 저하 기능 블록이 속한 클래스의 명칭을 수집할 수 있다.Next, the collecting unit 106 collects the name of the functional block judged to be the performance degrading functional block and the name of the class to which the performance degrading functional block belongs (S306). As described above, when the difference between the execution start time and the execution end time of the functional block becomes equal to or greater than the set threshold (for example, 0.0001), the measurement code includes the name of the functional block and the name of the class And the collecting unit 106 may collect the name of the performance degrading functional block output by the measurement code and the name of the class to which the performance degrading functional block belongs.

마지막으로, 디스플레이부(108)는 성능 저하 기능 블록의 명칭 및 성능 저하 기능 블록이 속한 클래스의 명칭을 디스플레이한다(308). 이에 따라, 문제가 발생한 기능 블록 및 클래스의 정확한 위치를 사용자에게 제공할 수 있다. 또한, 디스플레이부(108)는 성능 저하 기능 블록의 명칭을 트랜잭션별로 사용자에게 제공할 수 있다.
Finally, the display unit 108 displays the name of the degraded function block and the name of the class to which the degraded function block belongs (308). Thus, it is possible to provide the user with an accurate position of the function block and the class in which the problem occurs. In addition, the display unit 108 may provide a name of the performance degrading function block to the user on a transaction-by-transaction basis.

이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의하여 정해져야 한다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, I will understand. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by equivalents to the appended claims, as well as the following claims.

100 : 프로그램의 성능 측정 시스템
102 : 전처리부
104 : 코드 삽입부
106 : 수집부
108 : 디스플레이부
150 : 프로그램
100: Program performance measurement system
102:
104:
106: collecting section
108:
150: Program

Claims (14)

프로그램을 구성하는 기능 블록의 명칭 및 상기 기능 블록이 속한 클래스의 명칭을 포함하는 기능 블록의 정보를 획득하는 전처리부;
상기 기능 블록의 성능을 측정하기 위한 측정 코드에 상기 기능 블록의 정보를 정의하는 하나 이상의 명령어를 삽입하고, 상기 명령어가 삽입된 상기 측정 코드를 상기 기능 블록 각각에 삽입하는 코드 삽입부;
상기 프로그램의 실행시 하나 이상의 상기 기능 블록 중 상기 측정 코드에 의하여 성능 저하 기능 블록으로 판단된 기능 블록의 정보 및 상기 성능 저하 기능 블록으로 판단된 기능 블록이 속한 트랜잭션의 명칭을 수집하는 수집부; 및
상기 성능 저하 기능 블록으로 판단된 기능 블록의 정보를 디스플레이하되, 상기 성능 저하 기능 블록으로 판단된 기능 블록의 명칭을 상기 성능 저하 기능 블록으로 판단된 기능 블록이 속한 트랜잭션별로 디스플레이하는 디스플레이부를 포함하는, 프로그램의 성능 측정 시스템.
A preprocessor for obtaining information of a function block including a name of a function block constituting a program and a name of a class to which the function block belongs;
Inserting one or more instructions for defining information of the functional block into a measurement code for measuring the performance of the functional block and inserting the measurement code into which the instruction is inserted into each of the functional blocks;
A collecting unit for collecting information on a functional block judged to be a performance degrading functional block by the measurement code and a name of a transaction to which a functional block judged to be the performance degrading functional block belongs among the one or more functional blocks when the program is executed; And
And a display unit for displaying the information of the functional blocks judged to be the performance degrading functional blocks and displaying the names of the functional blocks judged as the performance degrading functional blocks for each transaction to which the functional blocks determined as the performance degrading functional blocks belong, Program performance measurement system.
청구항 1에 있어서,
상기 측정 코드는, 상기 기능 블록의 실행시 상기 기능 블록의 실행 시작 시각 및 실행 종료 시각의 차이를 계산하고 상기 차이가 설정된 임계치 이상인 경우 상기 기능 블록을 상기 성능 저하 기능 블록으로 판단하기 위한 하나 이상의 명령어를 포함하는, 프로그램의 성능 측정 시스템.
The method according to claim 1,
Wherein the measurement code includes at least one instruction for calculating a difference between an execution start time and an execution end time of the functional block when the functional block is executed and determining the functional block as the performance reduction functional block when the difference is equal to or greater than a set threshold value And the program performance metric.
삭제delete 삭제delete 청구항 1에 있어서,
상기 코드 삽입부는, 바이트 코드 인스트루먼트(Byte Code Instrument) 수단을 통해 상기 측정 코드를 상기 기능 블록 각각에 삽입하는, 프로그램의 성능 측정 시스템.
The method according to claim 1,
Wherein the code inserting unit inserts the measurement code into each of the functional blocks through a Byte Code Instrument.
삭제delete 삭제delete 전처리부에서, 프로그램을 구성하는 기능 블록의 명칭 및 상기 기능 블록이 속한 클래스의 명칭을 포함하는 기능 블록의 정보를 획득하는 단계;
코드 삽입부에서, 상기 기능 블록의 성능을 측정하기 위한 측정 코드에 상기 기능 블록의 정보를 정의하는 하나 이상의 명령어를 삽입하고, 상기 명령어가 삽입된 상기 측정 코드를 상기 기능 블록 각각에 삽입하는 단계;
수집부에서, 상기 프로그램의 실행시 하나 이상의 상기 기능 블록 중 상기 측정 코드에 의하여 성능 저하 기능 블록으로 판단된 기능 블록의 정보 및 상기 성능 저하 기능 블록으로 판단된 기능 블록이 속한 트랜잭션의 명칭을 수집하는 단계; 및
디스플레이부에서, 상기 성능 저하 기능 블록으로 판단된 기능 블록의 정보를 디스플레이하되, 상기 성능 저하 기능 블록으로 판단된 기능 블록의 명칭을 상기 성능 저하 기능 블록으로 판단된 기능 블록이 속한 트랜잭션별로 디스플레이하는 단계를 포함하는, 프로그램의 성능 측정 방법.
Acquiring information of a functional block including a name of a functional block constituting a program and a name of a class to which the functional block belongs;
Inserting at least one instruction defining the information of the functional block into a measurement code for measuring the performance of the functional block and inserting the measurement code into which the instruction is inserted into each of the functional blocks,
In the collecting unit, when the program is executed, the information of the functional blocks judged to be the performance degrading functional blocks by the measurement code and the names of the transactions to which the functional blocks determined as the performance degrading functional blocks belong are collected step; And
Displaying the information of the functional blocks judged to be the degraded functional blocks in the display unit and displaying the names of the functional blocks judged to be the degraded functional blocks for each of the transactions to which the functional blocks judged to be the degraded functional blocks belong; / RTI > of a program.
청구항 8에 있어서,
상기 측정 코드는, 상기 기능 블록의 실행시 상기 기능 블록의 실행 시작 시각 및 실행 종료 시각의 차이를 계산하고 상기 차이가 설정된 임계치 이상인 경우 상기 기능 블록을 상기 성능 저하 기능 블록으로 판단하기 위한 하나 이상의 명령어를 포함하는, 프로그램의 성능 측정 방법.
The method of claim 8,
Wherein the measurement code includes at least one instruction for calculating a difference between an execution start time and an execution end time of the functional block when the functional block is executed and determining the functional block as the performance reduction functional block when the difference is equal to or greater than a set threshold value / RTI > of a program.
삭제delete 삭제delete 청구항 8에 있어서,
상기 측정 코드를 상기 기능 블록 각각에 삽입하는 단계는, 바이트 코드 인스트루먼트(Byte Code Instrument) 수단을 통해 상기 측정 코드를 상기 기능 블록각각에 삽입하는, 프로그램의 성능 측정 방법.
The method of claim 8,
Wherein inserting the measurement code into each of the functional blocks inserts the measurement code into each of the functional blocks through a Byte Code Instrument.
삭제delete 삭제delete
KR1020150000774A 2015-01-05 2015-01-05 System and method for measuring performance of program KR101674787B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150000774A KR101674787B1 (en) 2015-01-05 2015-01-05 System and method for measuring performance of program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150000774A KR101674787B1 (en) 2015-01-05 2015-01-05 System and method for measuring performance of program

Publications (2)

Publication Number Publication Date
KR20160084560A KR20160084560A (en) 2016-07-14
KR101674787B1 true KR101674787B1 (en) 2016-11-10

Family

ID=56499090

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150000774A KR101674787B1 (en) 2015-01-05 2015-01-05 System and method for measuring performance of program

Country Status (1)

Country Link
KR (1) KR101674787B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019109553A1 (en) * 2017-12-08 2019-06-13 平安科技(深圳)有限公司 Functional and performance test script creation method, device, apparatus and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009529742A (en) * 2006-03-11 2009-08-20 スラム ゲームズ リミテッド Measurements for real-time performance profiling
JP4866241B2 (en) * 2004-08-23 2012-02-01 株式会社ガイア・システム・ソリューション Source program analyzer
JP2014102734A (en) * 2012-11-21 2014-06-05 Renesas Electronics Corp Performance verification program, performance verification method, and performance verification device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100503776B1 (en) 2005-03-12 2005-07-26 (주)위즈베이스 Method for analyzing and tuning web application performance
KR101191790B1 (en) * 2010-11-02 2012-10-16 주식회사 엑셈 Web page providing server and control method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4866241B2 (en) * 2004-08-23 2012-02-01 株式会社ガイア・システム・ソリューション Source program analyzer
JP2009529742A (en) * 2006-03-11 2009-08-20 スラム ゲームズ リミテッド Measurements for real-time performance profiling
JP2014102734A (en) * 2012-11-21 2014-06-05 Renesas Electronics Corp Performance verification program, performance verification method, and performance verification device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019109553A1 (en) * 2017-12-08 2019-06-13 平安科技(深圳)有限公司 Functional and performance test script creation method, device, apparatus and storage medium

Also Published As

Publication number Publication date
KR20160084560A (en) 2016-07-14

Similar Documents

Publication Publication Date Title
US7590521B2 (en) Method and system for probe optimization while instrumenting a program
CN106874187B (en) Code coverage rate collection method and device
CN109388566B (en) Code coverage rate analysis method, device, equipment and storage medium
JP5249206B2 (en) Automated method and system for collecting and reporting API performance profiles
US9864676B2 (en) Bottleneck detector application programming interface
US9317400B2 (en) Code coverage rate determination method and system
CN101261604B (en) Software quality evaluation apparatus and software quality evaluation quantitative analysis method
JP3842592B2 (en) Change risk measurement system, change risk measurement method, and change risk measurement program
US20090249305A1 (en) Super Nested Block Method to Minimize Coverage Testing Overhead
CN112035314B (en) Memory leakage monitoring method and device and electronic equipment
CN103186463B (en) Determine the method and system of the test specification of software
JP2010033543A (en) Software operation monitoring system, client computer, server computer thereof, and program thereof
CN106294136B (en) The online test method and system of performance change between the concurrent program runtime
KR101674787B1 (en) System and method for measuring performance of program
US20110218654A1 (en) Method For Optimizing A Control Program For Actuators
US20110239197A1 (en) Instance-based field affinity optimization
Reimann et al. Quality-aware refactoring for early detection and resolution of energy deficiencies
GB2560749A (en) Trace data representation
CN111291239A (en) Unit testing method, device, equipment and storage medium
JP2009217617A (en) Method and device for identifying memory leak place
CN107665166B (en) Function detection method and system of information system
US9262251B1 (en) Detecting memory failures in computing systems
CN110990265B (en) Coverage rate determining method, coverage rate determining device and storage medium
RU2424564C2 (en) Method of monitoring computer system
JP2009015734A (en) Program profiling device, program profiling method and program

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant