# US 8,543,989 B2 · Program evaluation apparatus and program evaluation method

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,543,989 B2
- Document ID: US8543989B2
- Status: Granted
- Kind: B2
- Application number: 12/573,661
- Filed: 2009-10-05
- Published: 2010-04-08
- Granted: 2013-09-24
- Earliest claimed: 2008-10-07
- Assignees: Fujitsu Limited
- Applicants: Hiroya Inakoshi
- Inventors: Hiroya Inakoshi
- Web page: https://patentgrep.com/patent/US8543989B2

## CPC

- G06F 11/3476: {Data logging (G06F11/14, G06F11/2205 take precedence)}
- G06F 11/3419: {by assessing time}
- G06F 11/3452: {Performance evaluation by statistical analysis}
- G06F 11/3428: {Benchmarking}
- G06F 2201/88: Monitoring involving counting
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An apparatus for evaluating a performance of a program includes: a storage unit for storing the program embedded with a plurality of trace statements; a processor executes a process including: executing the program embedded with a plurality of trace statements cyclically; calculating each time intervals of each cycle of execution of the program from a start test program till an end program; and evaluating the performance of the program on the basis of information of the time intervals.

## Claims

### Claim 1

An apparatus comprising:
a storage configured to store a program embedded with a plurality of trace statements, each of the trace statements including an instruction for outputting trace records which identify time when and portions where the trace statements are executed in the program; and
a processor configured to:
execute the program iteratively while selecting one or two of the trace statements at random for each cycle of executing the program wherein the instruction in the trace statements is activated so as to output a trace record and the instruction in the rest of the trace statements is deactivated so as not to output another trace record,
calculate each time intervals required by the program to run through the section between adjacent two trace statements by statistically analyzing the outputted trace records,
evaluate a performance of the program on the basis of the time intervals; and
generate a set of learning data on the basis of the set of the outputted trace records and identify pairs of learning data of the programs, each of the pairs having the same position or two different positions of the trace statements designated as a start and an end trace statements for one of the each of the pairs and designated as an end and a start trace statements for the other of the each of the pairs of execution cycles, respectively.

### Claim 2 (depends on 1)

The apparatus according to claim 1, wherein the program includes intervals which is evaluated and other intervals which continues the intervals and is not evaluated.

### Claim 3 (depends on 1)

The apparatus according to claim 1, wherein the processor is configured to:
calculate each time intervals by summing up time intervals of the each of the pairs of execution cycles, respectively and calculating total time for the program execution cycle, and
evaluate the performance of the program on the basis of information of the summed up time intervals.

### Claim 4 (depends on 1)

The apparatus according to claim 1, wherein the processor is configured to output trace records which identify time when and portions where the trace statements are executed and, together with time, the number of times they are executed so far.

### Claim 5 (depends on 1)

The apparatus according to claim 1, wherein the processor is configured to count the number of total time interval in the learning data, the total time interval being indicative of evaluating intervals in the program for one executing cycle.

### Claim 6

A method of evaluating a performance of a program by embedding a plurality of trace statements, the method comprising:
executing the program embedded with the plurality of trace statements iteratively, each of the trace statements including a instruction for outputting trace records which identify time when and portions where the trace statements are executed in the program, while selecting one or two of the trace statements at random for each cycle of executing the program wherein the instruction in the trace statements is activated so as to output a trace record and the instruction in the rest of the trace statements is deactivated so as not to output another trace record;
calculating each time intervals required by the program to run through the section between adjacent two trace statements by statistically analyzing the outputted trace records;
evaluating the performance of the program on the basis of the time intervals; and
generating by a processor, a set of learning data on the basis of the set of the outputted trace records and identify pairs of learning data of the programs, each of the pairs having the same position or two different positions of the trace statements designated as a start and an end trace statements for one of the each of the pairs and designated as an end and a start trace statements for the other of the each of the pairs of execution cycles, respectively.

### Claim 7 (depends on 6)

The method according to claim 6, wherein the program includes intervals which is evaluated and other intervals which continues the intervals and is not evaluated.

### Claim 8 (depends on 6)

The method according to claim 6, wherein the calculating calculates each time intervals by summing up time intervals of the each of the pairs of execution cycles, respectively, and the calculating total time for the program execution cycle, and the evaluating evaluates the performance of the program on the basis of information of the summed up time intervals.

### Claim 9 (depends on 6)

The method according to claim 6, further comprising:
outputting trace records which identify time when and portions where the trace statements are executed and, together with time, the number of times they are executed so far.

### Claim 10 (depends on 6)

The method according to claim 6, further comprising:
counting the number of total time interval in the learning data, the total time interval being indicative of evaluating intervals in the program for one executing cycle.
