WO2021064887A1 - Impact analysis device, impact analysis method, and impact analysis program - Google Patents

Impact analysis device, impact analysis method, and impact analysis program Download PDF

Info

Publication number
WO2021064887A1
WO2021064887A1 PCT/JP2019/038885 JP2019038885W WO2021064887A1 WO 2021064887 A1 WO2021064887 A1 WO 2021064887A1 JP 2019038885 W JP2019038885 W JP 2019038885W WO 2021064887 A1 WO2021064887 A1 WO 2021064887A1
Authority
WO
WIPO (PCT)
Prior art keywords
execution trace
execution
representative
unit
trace
Prior art date
Application number
PCT/JP2019/038885
Other languages
French (fr)
Japanese (ja)
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 JP2021550834A priority Critical patent/JP7258171B2/en
Priority to PCT/JP2019/038885 priority patent/WO2021064887A1/en
Publication of WO2021064887A1 publication Critical patent/WO2021064887A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • 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

Definitions

  • the present invention relates to a software impact analyzer, impact analysis method, and impact analysis program.
  • Patent Document 1 proposes a technique for extracting an influence range from the dependency of a function or a variable.
  • Patent Document 2 proposes a technique of measuring an execution trace obtained by inserting a tag into a source code and collecting the execution time of a function.
  • Patent Document 3 proposes a technique for holding a function name in a memory
  • Patent Document 4 proposes a technique for comparing function call histories.
  • Patent Document 5 proposes a sampling trace that collects a large number of machine instruction sequences at appropriate intervals.
  • Patent Document 6 proposes a technique for evaluating the degree of deviation of a job history including a job type and its execution time.
  • the conventional impact analyzer uses the dependency obtained by static analysis without considering the execution of software. Therefore, there is a problem that even if the influence of the change of the processing content can be confirmed, the influence of the difference in the conditions at the time of software execution cannot be confirmed.
  • an object of the present invention is to provide a technique capable of displaying the influence of a difference in conditions during software execution.
  • the impact analyzer collects a plurality of execution traces including a plurality of events including the entrance event and the exit event of the function in the software and the times of the plurality of events under different plurality of conditions.
  • the plurality of events are based on the trace collection unit, the execution trace storage unit that stores the plurality of execution traces collected by the execution trace collection unit, and the plurality of execution traces accumulated in the execution trace storage unit.
  • a representative execution trace calculation unit that calculates a representative execution trace including the average and variation of the time of each of the plurality of events, and a representative execution that accumulates the representative execution trace calculated by the representative execution trace calculation unit. It includes a trace storage unit and an output unit that outputs the representative execution trace accumulated in the representative execution trace storage unit.
  • a representative execution trace including the average and variation of each time of a plurality of events is calculated and displayed based on a plurality of execution traces collected under a plurality of different conditions.
  • FIG. It is a block diagram which shows the structure of the influence analysis apparatus which concerns on Embodiment 1.
  • FIG. It is a figure which shows the example of the execution trace which concerns on Embodiment 1.
  • FIG. It is a figure which shows the example of the representative execution trace which concerns on Embodiment 1.
  • FIG. It is a figure which shows the display example of the influence analysis apparatus which concerns on Embodiment 1.
  • FIG. It is a flowchart which shows the operation of the influence analysis apparatus which concerns on Embodiment 1.
  • FIG. It is a flowchart which shows the operation of the influence analysis apparatus which concerns on Embodiment 1.
  • FIG. It is a block diagram which shows the structure of the influence analysis apparatus which concerns on Embodiment 2.
  • FIG. It is a figure for demonstrating the operation example of the influence analysis apparatus which concerns on Embodiment 3.
  • FIG. It is a flowchart which shows the operation of the influence analysis apparatus which concerns on Embodiment 3.
  • FIG. It is a figure for demonstrating an example of the mapping rule which concerns on Embodiment 4.
  • FIG. It is a figure for demonstrating the operation example of the influence analysis apparatus which concerns on Embodiment 4.
  • FIG. It is a flowchart which shows the operation of the influence analysis apparatus which concerns on Embodiment 4.
  • FIG. 1 is a block diagram showing a configuration of an impact analysis device according to a first embodiment of the present invention.
  • This impact analyzer is a device that analyzes the impact on software performance due to changes in the source code or the like.
  • the effect will be described as “change effect”
  • the software before change will be described as “software before change”
  • the software after change will be described as "software after change”.
  • the impact analysis device shown in FIG. 1 includes an execution trace collection unit 1, an execution trace storage unit 2, a representative execution trace calculation unit 3, a representative execution trace storage unit 4, and a display unit 5.
  • the input of the execution trace storage unit 2 is connected to the output of the execution trace collection unit 1.
  • the input of the representative execution trace calculation unit 3 is connected to the output of the execution trace storage unit 2.
  • the input of the representative execution trace storage unit 4 is connected to the output of the representative execution trace calculation unit 3.
  • the input of the display unit 5 is connected to the output of the representative execution trace storage unit 4.
  • the execution trace collection unit 1 is a tool that collects a plurality of execution traces under different plurality of conditions.
  • an execution trace is an event sequence including a plurality of events including entrance events and exit events of one or more functions in software and times of the plurality of events.
  • the entrance event and the exit event can also be referred to as an entrance passage event and an exit passage event, respectively.
  • the time is the measurement time from a certain point in time to a certain point in time.
  • the time of an event is a measurement time from a reference time point to a time point in which the event occurs.
  • the execution trace collection unit 1 may be, for example, a tool of a method of inserting additional code into the source code, that is, a tool of a method of instrumenting.
  • the execution trace collection unit 1 may be, for example, a tool having a debugger for collecting instruction traces obtained from a macro cell of a microprocessor and having a log generation function in which a logging function is manually embedded in the source code.
  • the execution trace collection unit 1 may be, for example, a sampling trace tool capable of acquiring a history at a shorter sampling interval than the event to be monitored.
  • FIG. 2 is a diagram showing an example of execution trace 6.
  • the execution trace 6 includes a plurality of events including the entrance event and the exit event of the function, and the time when the plurality of events occur.
  • the time may be, for example, the elapsed time from the start of the trace, or the difference time between the event and the event immediately before the event.
  • the elapsed time of the funcA function, the funcB function called from the funcA function, and the funcC function called from the funcA function is shown as the time of the entrance event and the exit event, and the difference time is shown in parentheses. ing.
  • Funca @ enter indicates the entrance of the funcaA function
  • funca @ leave indicates the exit of the funcaA function
  • funcB @ enter indicates the entrance of the funcB function
  • funcB @ leave indicates the exit of the funcB function
  • func @ enter indicates the entrance of the funcC function
  • funcC @ leave indicates the exit of the funcC function.
  • the funca function first starts processing at 0 ns (0 ns), and the funca function calls the func B function at 70 ns (70 ns). Then, the funcB function finishes processing at 280ns (210ns), the funcaA function processes again, and the funcA function calls the funcC function at 330ns (50ns). Then, the funcC function finishes the process at 500 ns (170 ns), and the funcA function performs the process again and finishes the process at 600 ns (100 ns).
  • the plurality of execution traces 6 are collected by operating the software to be processed under a plurality of conditions, and are substantially statistically processed by the representative execution trace calculation unit 3 as described later.
  • the plurality of conditions differ from each other, for example, in continuous operation time, the number of other processes and other tasks, and at least one of the startup environments of other processes and other tasks.
  • the execution trace storage unit 2 stores a plurality of execution traces 6 collected by the execution trace collection unit 1.
  • a plurality of execution traces 6 may be stored in the execution trace storage unit 2 independently of each other, or may be continuously connected or combined in a state in which they can be distinguished from each other and stored in the execution trace storage unit 2. Good.
  • the representative execution trace calculation unit 3 calculates the representative execution trace by performing statistical processing based on the plurality of execution traces 6 accumulated in the execution trace storage unit 2.
  • FIG. 3 is a diagram showing an example of the representative execution trace 7.
  • the representative execution trace 7 is an event series including a plurality of events and the average and variation of the time of each of the plurality of events.
  • the plurality of events of the representative execution trace 7 are the same as the plurality of events of the execution trace 6 used for calculating the representative execution trace 7.
  • the time may be, for example, an elapsed time or a difference time, as described above.
  • the variability may be, for example, a variance or a standard deviation.
  • the average difference time and the variance difference time are shown as examples of the average and variation of the time of the representative execution trace 7.
  • the case where the time is the difference time and the variation is the variance will be mainly described, but the same applies to the case where the time is the elapsed time and the case where the variation is the standard deviation.
  • the funca function first starts processing with 0 ns and a variance of 0 ns, and the funca function calls the func B function with an average of 70 ns and a variance of 10 ns. Then, the funcB function finishes processing with an average of 200 ns and a variance of 20 ns, the funca function performs processing again, and the funca function calls the funcC function with an average of 30 ns and a variance of 15 ns. Then, the funcC function finishes the process with an average of 170 ns and a variance of 13 ns, and the funca function performs the process again and finishes the process with 110 ns and a variance of 10 ns.
  • the representative execution trace storage unit 4 stores the representative execution trace 7 calculated by the representative execution trace calculation unit 3.
  • the display unit 5 selects the representative execution trace 7 accumulated in the representative execution trace storage unit 4, and displays the selected representative execution trace 7 in the manner of the timing diagram.
  • the output unit will be described as being a display unit 5 that displays the representative execution trace 7, but the present invention is not limited to this, and may be, for example, a communication unit that transmits the representative execution trace 7. Since the representative execution trace 7 has an average and variation statistically processed for each event, the event transition, which is a transition of the function, is displayed with an event occurrence interval corresponding to the average and variation.
  • FIG. 4 is a display example of the representative execution trace 7 by the display unit 5.
  • FIG. 4 shows an operation in which the funcA function calls the funcB function and the funcC function in this order.
  • the display unit 5 displays the transition of the function based on the representative execution trace 7 which is the result of the statistical processing. For example, the display unit 5 displays the transition of the function with an event occurrence interval of “average difference time ⁇ 2 ⁇ variance difference time”.
  • the display unit 5 represents the function transition from the funcaA function or the like to the funcB function or the like with two arrows.
  • the arrow on the left indicates "average difference time-2 x variance difference time”
  • the arrow on the right indicates "average difference time + 2 x variance difference time”.
  • the execution trace collection unit 1, the execution trace storage unit 2, the representative execution trace calculation unit 3, and the representative execution trace storage unit 4 process each of the pre-change software and the post-change software. Then, the display unit 5 displays the representative execution trace 7 of the software before the change and the representative execution trace 7 of the software after the change, so that the user can confirm the influence of the change.
  • FIG. 5 is a flowchart showing the operation of the impact analysis device according to the first embodiment to visualize the effect of the change. Hereinafter, this operation will be described with reference to FIG.
  • steps S1 to S3 processing is performed on the software before the change.
  • the execution trace collecting unit 1 acquires the execution trace 6 of the software before the change under certain conditions and stores it in the execution trace accumulating unit 2. After the accumulation, the process proceeds to step S2.
  • step S2 the execution trace collecting unit 1 determines whether or not the number of times the execution trace 6 has been acquired has reached the specified number of times specified in advance. If it is determined that the value has not been reached, the process returns to step S1, and in step S1, the execution trace collecting unit 1 acquires the execution trace 6 under different conditions and accumulates the execution trace 6 in the execution trace storage unit 2. If it is determined that the value has been reached, the process proceeds to step S3. As described above, a plurality of execution traces 6 collected under a plurality of different conditions are accumulated in the execution trace storage unit 2.
  • step S3 the representative execution trace calculation unit 3 calculates the representative execution trace 7 of the pre-change software based on the plurality of execution traces 6 of the pre-change software accumulated in the execution trace storage unit 2, and the representative execution trace is calculated. Accumulate in the storage unit 4. After the accumulation, the process proceeds to step S4.
  • step S4 the execution trace collection unit 1 acquires the execution trace 6 of the modified software under certain conditions and accumulates it in the execution trace storage unit 2. After the accumulation, the process proceeds to step S5.
  • step S5 the execution trace collecting unit 1 determines whether or not the number of times the execution trace 6 has been acquired has reached the specified number of times specified in advance. If it is determined that the value has not been reached, the process returns to step S4, and in step S4, the execution trace collection unit 1 acquires the execution trace 6 under different conditions and accumulates it in the execution trace storage unit 2. If it is determined that the value has been reached, the process proceeds to step S6.
  • step S6 the representative execution trace calculation unit 3 calculates the representative execution trace 7 of the modified software based on the plurality of execution traces 6 of the modified software accumulated in the execution trace storage unit 2, and the representative execution trace is calculated. Accumulate in the storage unit 4. After the accumulation, the process proceeds to step S7.
  • step S7 the display unit 5 displays the representative execution trace 7 accumulated in the representative execution trace storage unit 4.
  • the display unit 5 selectively or simultaneously displays, for example, the representative execution trace 7 of the software before the change and the representative execution trace 7 of the software after the change. This allows the user to see the effect of changes made between the pre-change software and the post-change software on the performance of the software. After the display, the operation of FIG. 5 ends.
  • FIG. 6 is a flowchart showing the calculation operation of the representative execution trace 7 in steps S3 and S6. Hereinafter, this operation will be described with reference to FIG.
  • step S11 the representative execution trace calculation unit 3 empties the event series list. After that, the process proceeds to step S12.
  • step S12 the representative execution trace calculation unit 3 acquires the execution trace 6 from the execution trace storage unit 2. After the acquisition, the process proceeds to step S13.
  • step S13 the representative execution trace calculation unit 3 confirms whether or not the event series of the execution trace 6 acquired in step S12 exists in the event series list. If it does not exist, the process proceeds to step S14, and if it exists, the process proceeds to step S15.
  • step S14 the representative execution trace calculation unit 3 adds the event sequence that did not exist to the event sequence list. After the addition, the process proceeds to step S15.
  • step S15 the representative execution trace calculation unit 3 calculates the difference time from the immediately preceding event for the event of the event series in the event series list. After the calculation, the process proceeds to step S16.
  • step S16 the representative execution trace calculation unit 3 determines whether or not there is an unprocessed execution trace 6 among the plurality of execution traces 6 accumulated in the execution trace storage unit 2. If it is determined that it exists, the process returns to step S12, and in step S12, the representative execution trace calculation unit 3 acquires the unprocessed execution trace 6 from the execution trace storage unit 2. If it is determined that it does not exist, the process proceeds to step S17.
  • a maximum of the same number of events of the same type as a plurality of execution traces 6 are obtained, and the difference time is calculated for each of them. For example, when N (N is a natural number of 1 or more) of execution traces 6 as shown in FIG. 2 are collected, N events of one type called funca @ enter are obtained, and the difference time is calculated for each of them. To. That is, the difference time of one type of N (N is a natural number of 1 or more) events is calculated.
  • step S17 the representative execution trace calculation unit 3 acquires one or more events of one type from the event series list. After the acquisition, the process proceeds to step S18.
  • step S18 the representative execution trace calculation unit 3 calculates the mean value and the variance value from the difference time of one or more events of one type.
  • the representative execution trace calculation unit 3 generates a representative execution trace 7 including one type of event and the average difference time and the distributed difference time of the one type of event. After that, the process proceeds to step S19.
  • step S19 the representative execution trace calculation unit 3 determines whether or not there is an unprocessed event in the event series list. If it is determined that the event exists, the process returns to step S17, and in step S17, the representative execution trace calculation unit 3 acquires an unprocessed event from the event sequence list. If it is determined that it does not exist, the operation of FIG. 6 ends.
  • the average and variation of the time of each of the plurality of events are included based on the plurality of execution traces 6 collected under different plurality of conditions.
  • the representative execution trace 7 is calculated and displayed. According to such a configuration, it is possible to display for confirming the influence of the difference in the conditions at the time of software execution on the performance of the software, for example, the influence of other tasks, other processes, interruptions, and the like. Therefore, the user can confirm the performance impact in consideration of the impact.
  • the user compares the average time, which is the average of the times of the representative execution trace 7, with the time of the execution trace 6, and identifies the execution trace 6 having a certain difference from the representative execution trace 7. Therefore, the cause of the difference can be investigated.
  • the impact analyzer according to the second embodiment of the present invention automatically extracts the execution trace 6 having a certain difference from the representative execution trace 7. Is possible.
  • FIG. 7 is a block diagram showing the configuration of the impact analysis device according to the second embodiment.
  • the components according to the second embodiment the components that are the same as or similar to the above-mentioned components are designated by the same or similar reference numerals, and different components will be mainly described.
  • the configuration of the impact analysis device shown in FIG. 7 is the same as the configuration in which the execution trace outlier extraction unit 8 which is the extraction unit is added to the configuration of the impact analysis device according to the first embodiment (FIG. 1).
  • the input of the execution trace storage unit 2 is connected to the output of the execution trace collection unit 1.
  • the input of the representative execution trace calculation unit 3 is connected to the output of the execution trace storage unit 2.
  • the input of the representative execution trace calculation unit 3 is connected to the output of the execution trace storage unit 2.
  • the input of the representative execution trace storage unit 4 is connected to the output of the representative execution trace calculation unit 3.
  • the input of the execution trace outlier extraction unit 8 is connected to the output of the execution trace storage unit 2 and the output of the representative execution trace storage unit 4.
  • the input of the display unit 5 is connected to the output of the representative execution trace storage unit 4 and the output of the execution trace outlier extraction unit 8.
  • the representative execution trace storage unit 4 stores a plurality of representative execution traces 7 (for example, traces similar to the traces A to D in FIG. 10) in which combinations of a plurality of events are different from each other.
  • the difference in the combination of the plurality of events referred to here includes that at least one of the types and the number of events is different.
  • the execution trace outlier extraction unit 8 is the difference between the combination of the plurality of execution traces 6 stored in the execution trace storage unit 2 and the combination of the plurality of events among the plurality of representative execution traces 7 stored in the representative execution trace storage unit 4. Gets the smallest representative execution trace 7.
  • the representative execution trace 7 acquired by the execution trace outlier extraction unit 8 may be referred to as the “representative execution trace 7 of the nearest neighbor series”.
  • the execution trace outlier extraction unit 8 defines an allowable range based on the average time, which is the average included in the representative execution trace 7 of the nearest neighbor series, and is a plurality of execution traces 6 accumulated in the execution trace storage unit 2. Among them, the execution trace 6 whose time is out of the permissible range is extracted.
  • the execution trace 6 extracted by the execution trace outlier extraction unit 8 may be referred to as “outlier execution trace 6”.
  • the display unit 5 superimposes and displays the execution trace 6 of the outliers extracted from the execution trace outlier extraction unit 8 on the representative execution trace 7 of the nearest neighbor series used for the extraction. As a result, the user can confirm the representative execution trace 7 and the execution trace 6 having a certain difference from the representative execution trace 7.
  • FIG. 8 is a flowchart showing an operation in which the impact analysis device according to the second embodiment visualizes the effect of change. Hereinafter, this operation will be described with reference to FIG.
  • steps S21 to S23 the same processing as the processing of steps S1 to S3 of FIG. 5 described in the first embodiment is performed on the software before change.
  • the execution trace collecting unit 1 acquires the execution trace 6 of the software before the change under certain conditions and accumulates it in the execution trace accumulating unit 2. After the accumulation, the process proceeds to step S22.
  • step S22 the execution trace collecting unit 1 determines whether or not the number of times the execution trace 6 has been acquired has reached the specified number of times specified in advance. If it is determined that the result has not been reached, the process returns to step S21, and in step S21, the execution trace collecting unit 1 acquires the execution trace 6 under different conditions and accumulates it in the execution trace storage unit 2. If it is determined that the value has been reached, the process proceeds to step S23. As a result, a plurality of execution traces 6 of the software before the change are accumulated in the execution trace storage unit 2.
  • step S23 the representative execution trace calculation unit 3 calculates the representative execution trace 7 of the pre-change software based on the plurality of execution traces 6 of the pre-change software accumulated in the execution trace storage unit 2, and the representative execution trace is calculated. Accumulate in the storage unit 4.
  • the above processing is performed on a plurality of execution traces 6 (for example, traces similar to traces A to D in FIG. 10) in which combinations of a plurality of events are different from each other.
  • a plurality of representative execution traces 7 having different combinations of a plurality of events are accumulated in the representative execution trace storage unit 4. After the accumulation, the process proceeds to step S24.
  • step S24 and step S25 the same processing as in step S21 and step S22 is performed for the changed software.
  • a plurality of execution traces 6 of the modified software are accumulated in the execution trace storage unit 2. After the accumulation, the process proceeds to step S26.
  • step S26 the execution trace outlier extraction unit 8 acquires the representative execution trace 7 of the nearest neighbor series of the software before change from the plurality of representative execution traces 7 of the software before change accumulated in the representative execution trace storage unit 4. To do. Then, the execution trace outlier extraction unit 8 compares the representative execution trace 7 of the nearest series of the software before the change with the plurality of execution traces 6 of the software after the change accumulated in the execution trace storage unit 2, and after the change. Extract the outlier execution trace 6 for the software. Then, the display unit 5 superimposes and displays the extracted execution trace 6 of the outliers on the representative execution trace 7 of the nearest neighbor series. As a result, the user can confirm the representative execution trace 7 of the software before the change and the execution trace 6 of the software after the change having a certain difference from the representative execution trace 7.
  • FIG. 9 is a flowchart showing the acquisition operation of the representative execution trace 7 of the nearest neighbor series and the extraction operation and the display operation of the outlier execution trace 6 in step S26. Hereinafter, these operations will be described with reference to FIG.
  • step S31 the execution trace outlier extraction unit 8 acquires the representative execution trace 7 from the representative execution trace storage unit 4. After the acquisition, the process proceeds to step S32.
  • step S32 the execution trace outlier extraction unit 8 combines a plurality of events between the representative execution trace 7 acquired in step S31 and the plurality of execution traces 6 accumulated in the execution trace storage unit 2. Calculate the difference between. After the calculation, the process proceeds to step S33.
  • step S33 the execution trace outlier extraction unit 8 determines whether or not the difference calculated in step S32 is smaller than the difference calculated similarly for the representative execution trace 7 of the nearest neighbor series. If it is determined that it is small, the process proceeds to step S34, and if it is determined that it is not small, the process proceeds to step S35.
  • step S34 the execution trace outlier extraction unit 8 updates the representative execution trace 7 of the nearest neighbor series to the representative execution trace 7 acquired in step S31. After the update, the process proceeds to step S35.
  • step S35 the execution trace outlier extraction unit 8 determines whether or not an unprocessed representative execution trace 7 exists among the plurality of representative execution traces 7 accumulated in the representative execution trace storage unit 4. If it is determined that it exists, the process returns to step S31, and in step S31, the execution trace outlier extraction unit 8 acquires the unprocessed representative execution trace 7 from the representative execution trace storage unit 4. If it is determined that it does not exist, the process proceeds to step S36.
  • FIG. 10 is a diagram for explaining an operation example of steps S32 to S35.
  • the reference trace is the execution trace 6 accumulated in the execution trace storage unit 2
  • the trace A is the representative execution trace 7 acquired in the first step S31
  • ... the trace D is This is the representative execution trace 7 acquired in the fourth step S31.
  • event difference the difference in the combination of a plurality of events.
  • the funcA function is called, and the funcB function and the funcC function are called in the funcaA function. Since the event series of the trace A is equal to the event series of the reference trace, the difference between the events is "0".
  • the funcB function and the funcD function are called in the funcA function. That is, in the event series of trace C, the funcD function is called instead of the funcC function, and the entrance event and exit event of the funcC function and the entrance event and exit event of the funcD function are different, so that the difference between the events is "2". ..
  • the funcB function, the funcC function, and the funcD function are called in the funcA function. Since the entrance event and exit event of the funcD function are increased by the amount that the funcD function is called, the difference between the events is "2".
  • the execution trace outlier extraction unit 8 When the execution trace outlier extraction unit 8 performs the processing of steps S32 to S35 for the above example, the execution trace outlier extraction unit 8 sets the trace A having the smallest event difference from the execution trace 6 among the traces A to D as the nearest neighbor series. Acquired as the representative execution trace 7.
  • the combination of a plurality of events of a plurality of execution traces 6 compared with the representative execution trace 7 has been described as being the same as each other, but they may be different from each other.
  • the execution trace outlier extraction unit 8 obtains the difference between the events of each execution trace 6 and the representative execution trace 7, and the value obtained by summing the differences for the plurality of execution traces 6 is the largest.
  • the smaller representative execution trace 7 may be acquired as the representative execution trace 7 of the nearest neighbor series. For example, when there is one first reference trace in FIG. 11 and five second reference traces in FIG.
  • the difference between the events of trace A, trace B, trace C, and trace D is , 2, 10, 14, and 14, respectively.
  • the execution trace outlier extraction unit 8 may acquire the trace A having the smallest event difference from the execution trace 6 among the traces A to D as the representative execution trace 7 of the nearest neighbor series.
  • step S36 in FIG. 9 The processing after step S36 in FIG. 9 is performed for each of the plurality of execution traces 6 stored in the execution trace storage unit 2.
  • step S36 the execution trace outlier extraction unit 8 acquires an event from the representative execution trace 7 of the nearest neighbor series. After that, the process proceeds to step S37.
  • step S37 the execution trace outlier extraction unit 8 defines an allowable range based on the average time of the events acquired in step S36. For example, when the variance included in the representative execution trace 7 is the variance time, the execution trace outlier extraction unit 8 defines the permissible range as the range of the average time ⁇ (dispersion time ⁇ 2). The execution trace outlier extraction unit 8 determines whether or not the time of the event of the execution trace 6 is within the permissible range. If it is determined that the amount is settled, the process proceeds to step S38. If it is determined that it does not fit, the process proceeds to step S39.
  • step S38 the execution trace outlier extraction unit 8 determines whether or not an unprocessed event exists in the representative execution trace 7 of the nearest neighbor series. If it is determined that the event exists, the process returns to step S36, and in step S36, the execution trace outlier extraction unit 8 acquires an unprocessed event from the representative execution trace 7 of the nearest neighbor series. If it is determined that it does not exist, the operation of FIG. 9 ends.
  • step S39 the execution trace outlier extraction unit 8 determines the execution trace 6 determined in step S37 as the outlier execution trace 6, and the display unit 5 uses the outlier execution trace 6 for extraction. It is superimposed and displayed on the representative execution trace 7 of the nearest neighbor series. After the display, the operation of FIG. 9 ends.
  • FIG. 12 is a diagram showing a display example of step S39.
  • the dotted line shows the representative execution trace 7 of the nearest neighbor series, and the solid line shows the execution trace 6 of outliers.
  • the display as shown in FIG. 12 of the outlier execution traces 6, the timing of transition from the funca function to the funcB function and the timing of transition from the funca function to the funcC function are allowed by the representative execution trace 7. It can be read that it is out of range.
  • the execution trace 6 whose time is out of the permissible range is extracted and displayed from the plurality of execution traces 6 stored in the execution trace storage unit 2. To do. According to such a configuration, the user can confirm the representative execution trace 7 and the execution trace 6 having a certain difference from the representative execution trace 7. Therefore, it can be expected that the investigation of the cause of the difference between the execution trace 6 and the representative execution trace 7 can be facilitated.
  • the execution trace outlier extraction unit 8 extracts the execution trace 6 in which the difference from the average time of the representative execution trace 7 of the nearest neighbor series is equal to or more than a certain value, and the display unit 5 extracts the execution trace 6 Was displayed, but it is not limited to this.
  • the execution trace outlier extraction unit 8 extracts the execution trace 6 in which the difference between the combinations of a plurality of events is a certain number or more with respect to the representative execution trace 7 of the nearest neighbor series, and the display unit 5 extracts the execution trace 6 May be displayed. Even with such a configuration, it can be expected that the investigation of different causes can be facilitated.
  • the impact analyzer can align the start and end of the events of the plurality of execution traces 6. ..
  • FIG. 13 is a block diagram showing the configuration of the impact analysis device according to the third embodiment.
  • the components that are the same as or similar to the above-mentioned components are designated by the same or similar reference numerals, and different components will be mainly described.
  • the impact analysis device shown in FIG. 13 is the same as the configuration in which the event restriction unit 10 which is a restriction unit is added to the configuration (FIG. 7) of the impact analysis device according to the second embodiment.
  • the input of the event restriction unit 10 is connected to the output of the execution trace collection unit 1.
  • the input of the execution trace storage unit 2 is connected to the output of the event restriction unit 10.
  • the input of the representative execution trace calculation unit 3 is connected to the output of the execution trace storage unit 2.
  • the input of the representative execution trace storage unit 4 is connected to the output of the representative execution trace calculation unit 3.
  • the input of the execution trace outlier extraction unit 8 is connected to the output of the execution trace storage unit 2 and the output of the representative execution trace storage unit 4.
  • the input of the display unit 5 is connected to the output of the representative execution trace storage unit 4 and the output of the execution trace outlier extraction unit 8.
  • the event limiting unit 10 uses the execution trace 6 accumulated in the execution trace accumulating unit 2 as a predetermined start event and a pre-designated end event among the execution traces 6 collected by the execution trace collecting unit 1. It is limited to the execution trace 6 which has.
  • the event restriction unit 10 sets the event sequence as the execution trace 6. , Stored in the execution trace storage unit 2. If the execution trace 6 collected by the execution trace collection unit 1 does not have any event sequence from the same event as the start event to the same event as the end event, the event restriction unit 10 executes the execution trace 6 and the execution trace storage unit 2 Do not store in.
  • FIG. 14 is a diagram showing an example of a start event and an end event specified by the event restriction unit 10.
  • the entrance event of the funca function is specified as the start event
  • the exit event of the funca function is specified as the end event.
  • FIG. 15 is a diagram for explaining an example of event restriction using the start event and the exit event of FIG.
  • the input event series that is, the execution trace 6 collected by the execution trace collecting unit 1
  • the funcaE function calls the funcaA function
  • the funcaA function calls the funcB function and the funcC function in this order.
  • the event restriction unit 10 limits only the event sequence in which the funca function calls the func B function and the func C function in this order.
  • Output as an output event series.
  • an event sequence that does not include the entrance event and the exit event of the funcE function is accumulated in the execution trace storage unit 2 as the execution trace 6.
  • FIG. 16 is a flowchart showing the operation of the event limiting unit 10. Hereinafter, this operation will be described with reference to FIG.
  • step S41 the event restriction unit 10 sets the output flag to invalid. After that, the process proceeds to step S42.
  • step S42 the event limiting unit 10 acquires an event from the execution trace 6 collected by the execution trace collecting unit 1. After that, the process proceeds to step S43.
  • step S43 the event restriction unit 10 determines whether or not the output flag is effectively set. If it is determined that the output flag is set to be valid, the process proceeds to step S47, and if it is determined that the output flag is set to be invalid, the process proceeds to step S44.
  • step S44 the event restriction unit 10 determines whether or not the event acquired in step S42 matches the start event. If it is determined that they match, the process proceeds to step S45, and if it is determined that they do not match, the process proceeds to step S50.
  • step S45 the event restriction unit 10 effectively sets the output flag. After that, the process proceeds to step S46.
  • step S46 the event restriction unit 10 creates a new execution trace 6. After that, the process proceeds to step S47.
  • step S47 the event restriction unit 10 includes the event acquired in step S42 in the created execution trace 6. After that, the process proceeds to step S48.
  • step S48 the event restriction unit 10 determines whether or not the event acquired in step S42 matches the end event. If it is determined that they match, the process proceeds to step S49, and if it is determined that they do not match, the process proceeds to step S50.
  • step S49 the event restriction unit 10 sets the output flag to invalid. After that, the process proceeds to step S50.
  • step S50 the event limiting unit 10 determines whether or not there is an unprocessed event in the execution trace 6 collected by the execution trace collecting unit 1. If it is determined that the event exists, the process returns to step S42, and in step S42, the event limiting unit 10 acquires an unprocessed event from the execution trace 6 collected by the execution trace collecting unit 1. If it is determined that it does not exist, the operation of FIG. 16 ends.
  • the execution trace 6 accumulated in the execution trace storage unit 2 is an execution trace having a predetermined start event and a predetermined end event. Limit to 6. According to such a configuration, it is possible to suppress the processing of the execution trace 6 and the representative execution trace 7 in which the event sequence is different from the desired event sequence. Therefore, it is possible to improve the processing efficiency of the impact analysis device and the work efficiency of the user.
  • the execution trace 6 and the representative execution trace 7 are classified only by the event series of the function transition, and the execution trace 6 and the representative execution trace 7 are not classified due to the difference in variables such as the state.
  • the types of events are subdivided with respect to the discrete values of the variables.
  • the impact analyzer according to the fourth embodiment of the present invention can suppress the processing of the execution trace 6 and thus the representative execution trace 7 with respect to the variables. ing.
  • FIG. 17 is a block diagram showing the configuration of the impact analysis device according to the fourth embodiment.
  • the same or similar components as those described above will be designated by the same or similar reference numerals, and different components will be mainly described.
  • the impact analysis device shown in FIG. 17 is the same as the configuration in which the event conversion unit 12 which is a conversion unit is added to the configuration (FIG. 13) of the impact analysis device according to the third embodiment.
  • the input of the event conversion unit 12 is connected to the output of the execution trace collection unit 1.
  • the input of the event limiting unit 10 is connected to the output of the event conversion unit 12.
  • the input of the execution trace storage unit 2 is connected to the output of the event restriction unit 10.
  • the input of the representative execution trace calculation unit 3 is connected to the output of the execution trace storage unit 2.
  • the input of the representative execution trace storage unit 4 is connected to the output of the representative execution trace calculation unit 3.
  • the input of the execution trace outlier extraction unit 8 is connected to the output of the execution trace storage unit 2 and the output of the representative execution trace storage unit 4.
  • the input of the display unit 5 is connected to the output of the representative execution trace storage unit 4 and the output of the execution trace outlier extraction unit 8.
  • the execution trace 6 includes a variable. Then, when the variables of the execution trace 6 collected by the execution trace collection unit 1 include the variables specified in advance, the event conversion unit 12 uses a mapping that reduces the types of discrete values that the predetermined variables can take. Then, the variable of the execution trace 6 is converted. On the other hand, when the variables of the execution trace 6 collected by the execution trace collection unit 1 do not include the variables specified in advance, the event conversion unit 12 outputs the execution trace 6 as it is.
  • FIG. 18 is a diagram showing an example of mapping rules used in the event conversion unit 12.
  • conversion conditions of x ⁇ 0, 0 ⁇ x ⁇ 15, and 15 ⁇ x are defined as rules for mapping the variable x to any of 0, 1, and 2, respectively.
  • conversion conditions of y ⁇ 5, 5 ⁇ y are defined, respectively.
  • FIG. 19 is a diagram showing an output example of the event conversion unit 12.
  • x 7 after calling the funcA function
  • y 10 after calling the funcB function
  • y -1 after calling the funcC function
  • x 30 after the funcC function is completed. It is shown.
  • FIG. 20 is a flowchart showing the operation of the event conversion unit 12. Hereinafter, this operation will be described with reference to FIG.
  • step S61 the event conversion unit 12 acquires an event from the execution trace 6 collected by the execution trace collection unit 1. After that, the process proceeds to step S62.
  • step S62 the event conversion unit 12 determines whether or not the variable in the event acquired in step S61 matches the variable specified by the mapping rule as shown in FIG. If it is determined that they match, the process proceeds to step S63, and if it is determined that they do not match, the process proceeds to step S64.
  • step S63 the event conversion unit 12 converts the value of the variable in the event acquired in step S61 according to the mapping rule, rewrites it to the converted value, and outputs it. After that, the process proceeds to step S65.
  • step S64 the event conversion unit 12 outputs the event acquired in step S61 as it is. After that, the process proceeds to step S65.
  • step S65 the event conversion unit 12 determines whether or not there is an unprocessed event in the execution trace 6 collected by the execution trace collection unit 1. If it is determined that the event exists, the process returns to step S61, and in step S61, the event conversion unit 12 acquires an unprocessed event from the execution trace 6 collected by the execution trace collection unit 1. If it is determined that it does not exist, the operation of FIG. 20 ends.
  • the variables of the execution trace 6 collected by the execution trace collection unit 1 are converted by using the mapping that reduces the types of variables. According to such a configuration, not only the function transition but also the performance influence considering the conversion condition of the variable can be compared and the cause can be visualized. At this time, since the number of execution traces 6 and thus the number of representative execution traces 7 can be suppressed by reducing the types of variables, it is possible to improve the processing efficiency of the impact analysis device and the work efficiency of the user.
  • the execution trace collection unit 1, the representative execution trace calculation unit 3, the execution trace deviation value extraction unit 8, the event restriction unit 10, and the event conversion unit 12 are, for example, CPUs (Central Processing Units) (not shown) of a computer corresponding to the impact analyzer. ) Etc. are realized as the functions of the CPU by executing a program stored in a storage device such as a semiconductor memory (not shown) of the impact analyzer.
  • a storage device such as a semiconductor memory (not shown) of the impact analyzer.
  • each embodiment can be freely combined, and each embodiment can be appropriately modified or omitted within the scope of the invention.
  • 1 Execution trace collection unit 2 Execution trace storage unit, 3 Representative execution trace calculation unit, 4 Representative execution trace storage unit, 5 Display unit, 6 Execution trace, 7 Representative execution trace, 8 Execution trace outlier extraction unit, 10 Event restriction Department, 12 Event conversion department.

Abstract

The present invention aims to provide a technology capable of displaying the impact of differences in conditions when software is executed. This impact analysis device comprises: an execution trace accumulation unit that accumulates a plurality of execution traces collected under each of a plurality of different conditions; a representative execution trace calculation unit that calculates a representative execution trace that includes a plurality of events and the average and variation in time of each of the plurality of events, calculating same on the basis of the plurality of execution traces collected by the execution trace accumulation unit; and a representative execution trace accumulation unit that accumulates the representative execution traces calculated by the representative execution trace calculation unit.

Description

影響分析装置、影響分析方法、及び、影響分析プログラムImpact analyzer, impact analysis method, and impact analysis program
 本発明は、ソフトウェアの影響分析装置、影響分析方法、及び、影響分析プログラムに関する。 The present invention relates to a software impact analyzer, impact analysis method, and impact analysis program.
 ソースコードなどの変更によるソフトウェアへの影響を分析する影響分析装置について様々な技術が提案されている。例えば特許文献1には、関数や変数の依存関係から影響範囲を抽出する技術が提案されている。例えば特許文献2には、ソースコードにタグを挿入して得られる実行トレースを計測し、関数の実行時間を収集する技術が提案されている。 Various technologies have been proposed for impact analyzers that analyze the impact of changes in source code on software. For example, Patent Document 1 proposes a technique for extracting an influence range from the dependency of a function or a variable. For example, Patent Document 2 proposes a technique of measuring an execution trace obtained by inserting a tag into a source code and collecting the execution time of a function.
 例えば特許文献3には、関数名をメモリに保持する技術が提案され、例えば特許文献4には、関数呼び出し履歴を比較する技術が提案されている。例えば特許文献5には、適当な間隔でマシン命令のシーケンスを多数採取するサンプリングトレースが提案されている。例えば特許文献6には、ジョブの種類とその実行時間とを含むジョブ履歴の外れ度合いを評価する技術が提案されている。 For example, Patent Document 3 proposes a technique for holding a function name in a memory, and Patent Document 4, for example, proposes a technique for comparing function call histories. For example, Patent Document 5 proposes a sampling trace that collects a large number of machine instruction sequences at appropriate intervals. For example, Patent Document 6 proposes a technique for evaluating the degree of deviation of a job history including a job type and its execution time.
特開2015-11661号公報Japanese Unexamined Patent Publication No. 2015-11661 特開平11-316696号公報Japanese Unexamined Patent Publication No. 11-316696 特開2001-282576号公報Japanese Unexamined Patent Publication No. 2001-282576 特開2006-053788号公報Japanese Unexamined Patent Publication No. 2006-053788 特開2004-078338号公報Japanese Unexamined Patent Publication No. 2004-078338 国際公開第2018/146714号International Publication No. 2018/146714
 しかしながら、従来の影響分析装置は、ソフトウェアの実行を考慮せずに静的解析で得られた依存関係を用いる。このため、処理内容の変更による影響を確認できても、ソフトウェア実行時の条件の差による影響を確認することができないという問題があった。 However, the conventional impact analyzer uses the dependency obtained by static analysis without considering the execution of software. Therefore, there is a problem that even if the influence of the change of the processing content can be confirmed, the influence of the difference in the conditions at the time of software execution cannot be confirmed.
 そこで、本発明は、上記のような問題点を鑑みてなされたものであり、ソフトウェア実行時の条件の差による影響を表示可能な技術を提供することを目的とする。 Therefore, the present invention has been made in view of the above problems, and an object of the present invention is to provide a technique capable of displaying the influence of a difference in conditions during software execution.
 本発明に係る影響分析装置は、ソフトウェアにおける関数の入口イベント及び出口イベントを含む複数のイベントと、前記複数のイベントの時刻とを含む複数の実行トレースを、異なる複数の条件下でそれぞれ収集する実行トレース収集部と、前記実行トレース収集部で収集された前記複数の実行トレースを蓄積する実行トレース蓄積部と、前記実行トレース蓄積部に蓄積された前記複数の実行トレースに基づいて、前記複数のイベントと、前記複数のイベントのそれぞれの前記時刻の平均及びばらつきとを含む代表実行トレースを算出する代表実行トレース算出部と、前記代表実行トレース算出部で算出された前記代表実行トレースを蓄積する代表実行トレース蓄積部と、前記代表実行トレース蓄積部に蓄積された前記代表実行トレースを出力する出力部とを備える。 The impact analyzer according to the present invention collects a plurality of execution traces including a plurality of events including the entrance event and the exit event of the function in the software and the times of the plurality of events under different plurality of conditions. The plurality of events are based on the trace collection unit, the execution trace storage unit that stores the plurality of execution traces collected by the execution trace collection unit, and the plurality of execution traces accumulated in the execution trace storage unit. A representative execution trace calculation unit that calculates a representative execution trace including the average and variation of the time of each of the plurality of events, and a representative execution that accumulates the representative execution trace calculated by the representative execution trace calculation unit. It includes a trace storage unit and an output unit that outputs the representative execution trace accumulated in the representative execution trace storage unit.
 本発明によれば、異なる複数の条件下でそれぞれ収集された複数の実行トレースに基づいて、複数のイベントのそれぞれの時刻の平均及びばらつきを含む代表実行トレースを算出して表示する。このような構成によれば、ソフトウェア実行時の条件の差による影響を表示することができる。 According to the present invention, a representative execution trace including the average and variation of each time of a plurality of events is calculated and displayed based on a plurality of execution traces collected under a plurality of different conditions. With such a configuration, it is possible to display the influence of the difference in the conditions at the time of software execution.
 本発明の目的、特徴、態様及び利点は、以下の詳細な説明と添付図面とによって、より明白となる。 The object, features, aspects and advantages of the present invention will be made clearer by the following detailed description and accompanying drawings.
実施の形態1に係る影響分析装置の構成を示すブロック図である。It is a block diagram which shows the structure of the influence analysis apparatus which concerns on Embodiment 1. FIG. 実施の形態1に係る実行トレースの例を示す図である。It is a figure which shows the example of the execution trace which concerns on Embodiment 1. FIG. 実施の形態1に係る代表実行トレースの例を示す図である。It is a figure which shows the example of the representative execution trace which concerns on Embodiment 1. FIG. 実施の形態1に係る影響分析装置の表示例を示す図である。It is a figure which shows the display example of the influence analysis apparatus which concerns on Embodiment 1. FIG. 実施の形態1に係る影響分析装置の動作を示すフローチャートである。It is a flowchart which shows the operation of the influence analysis apparatus which concerns on Embodiment 1. FIG. 実施の形態1に係る影響分析装置の動作を示すフローチャートである。It is a flowchart which shows the operation of the influence analysis apparatus which concerns on Embodiment 1. FIG. 実施の形態2に係る影響分析装置の構成を示すブロック図である。It is a block diagram which shows the structure of the influence analysis apparatus which concerns on Embodiment 2. FIG. 実施の形態2に係る影響分析装置の動作を示すフローチャートである。It is a flowchart which shows the operation of the influence analysis apparatus which concerns on Embodiment 2. 実施の形態2に係る影響分析装置の動作を示すフローチャートである。It is a flowchart which shows the operation of the influence analysis apparatus which concerns on Embodiment 2. 実施の形態2に係る影響分析装置の動作例を説明するための図である。It is a figure for demonstrating the operation example of the influence analysis apparatus which concerns on Embodiment 2. FIG. 実施の形態2に係る影響分析装置の動作例を説明するための図である。It is a figure for demonstrating the operation example of the influence analysis apparatus which concerns on Embodiment 2. FIG. 実施の形態2に係る影響分析装置の表示例を示す図である。It is a figure which shows the display example of the influence analysis apparatus which concerns on Embodiment 2. FIG. 実施の形態3に係る影響分析装置の構成を示すブロック図である。It is a block diagram which shows the structure of the influence analysis apparatus which concerns on Embodiment 3. 実施の形態3に係る開始イベント及び終了イベントの例を示す図である。It is a figure which shows the example of the start event and the end event which concerns on Embodiment 3. 実施の形態3に係る影響分析装置の動作例を説明するための図である。It is a figure for demonstrating the operation example of the influence analysis apparatus which concerns on Embodiment 3. FIG. 実施の形態3に係る影響分析装置の動作を示すフローチャートである。It is a flowchart which shows the operation of the influence analysis apparatus which concerns on Embodiment 3. 実施の形態4に係る影響分析装置の構成を示すブロック図である。It is a block diagram which shows the structure of the influence analysis apparatus which concerns on Embodiment 4. FIG. 実施の形態4に係る写像の規則の例を説明するための図である。It is a figure for demonstrating an example of the mapping rule which concerns on Embodiment 4. FIG. 実施の形態4に係る影響分析装置の動作例を説明するための図である。It is a figure for demonstrating the operation example of the influence analysis apparatus which concerns on Embodiment 4. FIG. 実施の形態4に係る影響分析装置の動作を示すフローチャートである。It is a flowchart which shows the operation of the influence analysis apparatus which concerns on Embodiment 4. FIG.
 <実施の形態1>
 図1は、本発明の実施の形態1に係る影響分析装置の構成を示すブロック図である。この影響分析装置は、ソースコードなどの変更によるソフトウェアの性能への影響を分析する装置である。以下、当該影響を「変更影響」と記し、変更前のソフトウェアを「変更前ソフトウェア」と記し、変更後のソフトウェアを「変更後ソフトウェア」と記して説明する。
<Embodiment 1>
FIG. 1 is a block diagram showing a configuration of an impact analysis device according to a first embodiment of the present invention. This impact analyzer is a device that analyzes the impact on software performance due to changes in the source code or the like. Hereinafter, the effect will be described as "change effect", the software before change will be described as "software before change", and the software after change will be described as "software after change".
 図1に示す影響分析装置は、実行トレース収集部1と、実行トレース蓄積部2と、代表実行トレース算出部3と、代表実行トレース蓄積部4と、表示部5とを備える。実行トレース蓄積部2の入力は、実行トレース収集部1の出力と接続される。代表実行トレース算出部3の入力は、実行トレース蓄積部2の出力と接続される。代表実行トレース蓄積部4の入力は、代表実行トレース算出部3の出力と接続される。表示部5の入力は、代表実行トレース蓄積部4の出力と接続される。 The impact analysis device shown in FIG. 1 includes an execution trace collection unit 1, an execution trace storage unit 2, a representative execution trace calculation unit 3, a representative execution trace storage unit 4, and a display unit 5. The input of the execution trace storage unit 2 is connected to the output of the execution trace collection unit 1. The input of the representative execution trace calculation unit 3 is connected to the output of the execution trace storage unit 2. The input of the representative execution trace storage unit 4 is connected to the output of the representative execution trace calculation unit 3. The input of the display unit 5 is connected to the output of the representative execution trace storage unit 4.
 実行トレース収集部1は、複数の実行トレースを、異なる複数の条件下でそれぞれ収集するツールである。詳細は後述するが、実行トレースは、ソフトウェアにおける1つ以上の関数の入口イベント及び出口イベントを含む複数のイベントと、複数のイベントの時刻とを含むイベント系列である。なお、入口イベント及び出口イベントは、それぞれ入口の通過イベント及び出口の通過イベントと呼ぶこともできる。時刻は、ある時点からある時点までの測定時間であり、例えばイベントの時刻は、基準時点からイベントが発生した時点までの測定時間である。 The execution trace collection unit 1 is a tool that collects a plurality of execution traces under different plurality of conditions. Although details will be described later, an execution trace is an event sequence including a plurality of events including entrance events and exit events of one or more functions in software and times of the plurality of events. The entrance event and the exit event can also be referred to as an entrance passage event and an exit passage event, respectively. The time is the measurement time from a certain point in time to a certain point in time. For example, the time of an event is a measurement time from a reference time point to a time point in which the event occurs.
 実行トレース収集部1は、例えば、ソースコードに追加のコードを挿入する方式のツール、つまりインストゥルメントする方式のツールであってもよい。または、実行トレース収集部1は、例えば、マイクロプロセッサのマクロセルから得られる命令トレースを収集するデバッガを有し、ソースコードに人手でロギング関数を埋め込んだログ生成機能を有するツールであってもよい。または、実行トレース収集部1は、例えば、監視対象のイベントに比べて短いサンプリング間隔で履歴を取得可能なサンプリングトレースツールであってもよい。 The execution trace collection unit 1 may be, for example, a tool of a method of inserting additional code into the source code, that is, a tool of a method of instrumenting. Alternatively, the execution trace collection unit 1 may be, for example, a tool having a debugger for collecting instruction traces obtained from a macro cell of a microprocessor and having a log generation function in which a logging function is manually embedded in the source code. Alternatively, the execution trace collection unit 1 may be, for example, a sampling trace tool capable of acquiring a history at a shorter sampling interval than the event to be monitored.
 図2は、実行トレース6の例を示す図である。実行トレース6は、関数の入口イベント及び出口イベントを含む複数のイベントと、当該複数のイベントが行われる時刻とを含む。時刻は、例えば、トレースを開始してからの経過時間であってもよいし、イベントとその直前のイベントとの差分時間であってもよい。図2の例ではfuncA関数と、funcA関数から呼び出されるfuncB関数と、funcA関数から呼び出されるfuncC関数とについて、経過時間が入口イベント及び出口イベントの時刻として示され、括弧内に差分時間が示されている。 FIG. 2 is a diagram showing an example of execution trace 6. The execution trace 6 includes a plurality of events including the entrance event and the exit event of the function, and the time when the plurality of events occur. The time may be, for example, the elapsed time from the start of the trace, or the difference time between the event and the event immediately before the event. In the example of FIG. 2, the elapsed time of the funcA function, the funcB function called from the funcA function, and the funcC function called from the funcA function is shown as the time of the entrance event and the exit event, and the difference time is shown in parentheses. ing.
 funcA@enterはfuncA関数の入口を示し、funcA@leaveはfuncA関数の出口を示す。同様に、funcB@enterはfuncB関数の入口を示し、funcB@leaveはfuncB関数の出口を示し、funcC@enterはfuncC関数の入口を示し、funcC@leaveはfuncC関数の出口を示す。 Funca @ enter indicates the entrance of the funcaA function, and funca @ leave indicates the exit of the funcaA function. Similarly, funcB @ enter indicates the entrance of the funcB function, funcB @ leave indicates the exit of the funcB function, func @ enter indicates the entrance of the funcC function, and funcC @ leave indicates the exit of the funcC function.
 図2の例では、まずfuncA関数が0ns(0ns)で処理を開始し、funcA関数はfuncB関数を70ns(70ns)で呼び出す。それから、funcB関数は280ns(210ns)で処理を終え、funcA関数が再び処理を行い、funcA関数はfuncC関数を330ns(50ns)で呼び出す。そして、funcC関数は500ns(170ns)で処理を終え、funcA関数が再び処理を行って600ns(100ns)で処理を終える。 In the example of FIG. 2, the funca function first starts processing at 0 ns (0 ns), and the funca function calls the func B function at 70 ns (70 ns). Then, the funcB function finishes processing at 280ns (210ns), the funcaA function processes again, and the funcA function calls the funcC function at 330ns (50ns). Then, the funcC function finishes the process at 500 ns (170 ns), and the funcA function performs the process again and finishes the process at 600 ns (100 ns).
 複数の実行トレース6は、それぞれ複数の条件下で処理対象のソフトウェアを動作させることによって収集され、後述するように実質的に代表実行トレース算出部3によって統計処理される。複数の条件は、例えば、連続稼動時間、他プロセス及び他タスクの数、並びに、他プロセス及び他タスクの起動環境の少なくともいずれか1つが互いに異なる。 The plurality of execution traces 6 are collected by operating the software to be processed under a plurality of conditions, and are substantially statistically processed by the representative execution trace calculation unit 3 as described later. The plurality of conditions differ from each other, for example, in continuous operation time, the number of other processes and other tasks, and at least one of the startup environments of other processes and other tasks.
 実行トレース蓄積部2は、実行トレース収集部1で収集された複数の実行トレース6を蓄積する。複数の実行トレース6は互いに独立して実行トレース蓄積部2に蓄積されてもよいし、互いに区別可能な状態で連続的に繋げられたり結合されたりして実行トレース蓄積部2に蓄積されてもよい。 The execution trace storage unit 2 stores a plurality of execution traces 6 collected by the execution trace collection unit 1. A plurality of execution traces 6 may be stored in the execution trace storage unit 2 independently of each other, or may be continuously connected or combined in a state in which they can be distinguished from each other and stored in the execution trace storage unit 2. Good.
 代表実行トレース算出部3は、実行トレース蓄積部2に蓄積された複数の実行トレース6に基づいて統計処理を行うことにより代表実行トレースを算出する。 The representative execution trace calculation unit 3 calculates the representative execution trace by performing statistical processing based on the plurality of execution traces 6 accumulated in the execution trace storage unit 2.
 図3は、代表実行トレース7の例を示す図である。代表実行トレース7は、複数のイベントと、当該複数のイベントのそれぞれの時刻の平均及びばらつきとを含むイベント系列である。代表実行トレース7の複数のイベントは、代表実行トレース7の算出に用いられる実行トレース6の複数のイベントと同じである。時刻は、上述と同様に、例えば経過時間であってもよいし、差分時間であってもよい。ばらつきは、例えば分散であってもよいし、標準偏差であってもよい。図3では、代表実行トレース7の時刻の平均及びばらつきの例として、平均差分時間及び分散差分時間が示されている。以下、時刻が差分時間であり、ばらつきが分散である場合について主に説明するが、時刻が経過時間である場合、及び、ばらつきが標準偏差である場合も以下と同様である。 FIG. 3 is a diagram showing an example of the representative execution trace 7. The representative execution trace 7 is an event series including a plurality of events and the average and variation of the time of each of the plurality of events. The plurality of events of the representative execution trace 7 are the same as the plurality of events of the execution trace 6 used for calculating the representative execution trace 7. The time may be, for example, an elapsed time or a difference time, as described above. The variability may be, for example, a variance or a standard deviation. In FIG. 3, the average difference time and the variance difference time are shown as examples of the average and variation of the time of the representative execution trace 7. Hereinafter, the case where the time is the difference time and the variation is the variance will be mainly described, but the same applies to the case where the time is the elapsed time and the case where the variation is the standard deviation.
 図3の例では、まずfuncA関数が0ns、分散0nsで処理を開始し、funcA関数はfuncB関数を平均70ns、分散10nsで呼び出す。そして、funcB関数は平均200ns、分散20nsで処理を終え、funcA関数が再び処理を行い、funcA関数はfuncC関数を平均30ns、分散15nsで呼び出す。そして、funcC関数は平均170ns、分散13nsで処理を終え、funcA関数が再び処理を行って110ns、分散10nsで処理を終える。 In the example of FIG. 3, the funca function first starts processing with 0 ns and a variance of 0 ns, and the funca function calls the func B function with an average of 70 ns and a variance of 10 ns. Then, the funcB function finishes processing with an average of 200 ns and a variance of 20 ns, the funca function performs processing again, and the funca function calls the funcC function with an average of 30 ns and a variance of 15 ns. Then, the funcC function finishes the process with an average of 170 ns and a variance of 13 ns, and the funca function performs the process again and finishes the process with 110 ns and a variance of 10 ns.
 代表実行トレース蓄積部4は、代表実行トレース算出部3で算出された代表実行トレース7を蓄積する。 The representative execution trace storage unit 4 stores the representative execution trace 7 calculated by the representative execution trace calculation unit 3.
 表示部5は、代表実行トレース蓄積部4に蓄積された代表実行トレース7を選択し、選択した代表実行トレース7をタイミング図の態様で表示する。以下、出力部は代表実行トレース7を表示する表示部5であるものとして説明するが、これに限ったものではなく、例えば代表実行トレース7を送信する通信部であってもよい。代表実行トレース7は、イベントごとに統計処理された平均及びばらつきを持つため、関数の遷移であるイベント遷移は、平均及びばらつきに対応するイベント発生間隔を持たせて表示される。 The display unit 5 selects the representative execution trace 7 accumulated in the representative execution trace storage unit 4, and displays the selected representative execution trace 7 in the manner of the timing diagram. Hereinafter, the output unit will be described as being a display unit 5 that displays the representative execution trace 7, but the present invention is not limited to this, and may be, for example, a communication unit that transmits the representative execution trace 7. Since the representative execution trace 7 has an average and variation statistically processed for each event, the event transition, which is a transition of the function, is displayed with an event occurrence interval corresponding to the average and variation.
 図4は、表示部5による代表実行トレース7の表示例である。図4では、funcA関数がfuncB関数及びfuncC関数をこの順に呼び出す動作が示されている。表示部5は、関数の遷移を統計的処理の結果である代表実行トレース7に基づいて表示する。例えば、表示部5は、「平均差分時間±2×分散差分時間」のイベント発生間隔を持たせて、関数の遷移を表示する。図4の例では、表示部5は、funcA関数などからfuncB関数などへの関数遷移を2つの矢印で表現している。左側の矢印は「平均差分時間-2×分散差分時間」を示し、右側の矢印は「平均差分時間+2×分散差分時間」を示している。 FIG. 4 is a display example of the representative execution trace 7 by the display unit 5. FIG. 4 shows an operation in which the funcA function calls the funcB function and the funcC function in this order. The display unit 5 displays the transition of the function based on the representative execution trace 7 which is the result of the statistical processing. For example, the display unit 5 displays the transition of the function with an event occurrence interval of “average difference time ± 2 × variance difference time”. In the example of FIG. 4, the display unit 5 represents the function transition from the funcaA function or the like to the funcB function or the like with two arrows. The arrow on the left indicates "average difference time-2 x variance difference time", and the arrow on the right indicates "average difference time + 2 x variance difference time".
 実行トレース収集部1、実行トレース蓄積部2、代表実行トレース算出部3、及び、代表実行トレース蓄積部4は、変更前ソフトウェア及び変更後ソフトウェアのそれぞれについて処理を行う。そして、表示部5が、変更前ソフトウェアの代表実行トレース7と、変更後ソフトウェアの代表実行トレース7とを表示することにより、ユーザは変更影響を確認することができる。 The execution trace collection unit 1, the execution trace storage unit 2, the representative execution trace calculation unit 3, and the representative execution trace storage unit 4 process each of the pre-change software and the post-change software. Then, the display unit 5 displays the representative execution trace 7 of the software before the change and the representative execution trace 7 of the software after the change, so that the user can confirm the influence of the change.
 <動作>
 図5は、本実施の形態1に係る影響分析装置が変更影響を可視化する動作を示すフローチャートである。以下、図5を用いてこの動作を説明する。
<Operation>
FIG. 5 is a flowchart showing the operation of the impact analysis device according to the first embodiment to visualize the effect of the change. Hereinafter, this operation will be described with reference to FIG.
 ステップS1~ステップS3では、変更前ソフトウェアについて処理が行われる。まず、ステップS1にて、実行トレース収集部1は、変更前ソフトウェアの実行トレース6をある条件下で取得し、実行トレース蓄積部2に蓄積する。蓄積後、処理がステップS2に進む。 In steps S1 to S3, processing is performed on the software before the change. First, in step S1, the execution trace collecting unit 1 acquires the execution trace 6 of the software before the change under certain conditions and stores it in the execution trace accumulating unit 2. After the accumulation, the process proceeds to step S2.
 ステップS2にて、実行トレース収集部1は、実行トレース6を取得した回数が、予め指定された指定回数に達しているか否かを判定する。達していないと判定された場合には処理がステップS1に戻り、当該ステップS1にて実行トレース収集部1は、実行トレース6を別の条件下で取得し、実行トレース蓄積部2に蓄積する。達していると判定された場合には処理がステップS3に進む。以上により、異なる複数の条件下で収集された複数の実行トレース6が実行トレース蓄積部2に蓄積される。 In step S2, the execution trace collecting unit 1 determines whether or not the number of times the execution trace 6 has been acquired has reached the specified number of times specified in advance. If it is determined that the value has not been reached, the process returns to step S1, and in step S1, the execution trace collecting unit 1 acquires the execution trace 6 under different conditions and accumulates the execution trace 6 in the execution trace storage unit 2. If it is determined that the value has been reached, the process proceeds to step S3. As described above, a plurality of execution traces 6 collected under a plurality of different conditions are accumulated in the execution trace storage unit 2.
 ステップS3にて、代表実行トレース算出部3は、実行トレース蓄積部2に蓄積された変更前ソフトウェアの複数の実行トレース6に基づいて、変更前ソフトウェアの代表実行トレース7を算出し、代表実行トレース蓄積部4に蓄積する。蓄積後、処理がステップS4に進む。 In step S3, the representative execution trace calculation unit 3 calculates the representative execution trace 7 of the pre-change software based on the plurality of execution traces 6 of the pre-change software accumulated in the execution trace storage unit 2, and the representative execution trace is calculated. Accumulate in the storage unit 4. After the accumulation, the process proceeds to step S4.
 ステップS4~ステップS6では、変更後ソフトウェアについて、ステップS1~ステップS3の処理と同様の処理が行われる。まず、ステップS4にて、実行トレース収集部1は、変更後ソフトウェアの実行トレース6をある条件下で取得し、実行トレース蓄積部2に蓄積する。蓄積後、処理がステップS5に進む。 In steps S4 to S6, the same processing as in steps S1 to S3 is performed for the changed software. First, in step S4, the execution trace collection unit 1 acquires the execution trace 6 of the modified software under certain conditions and accumulates it in the execution trace storage unit 2. After the accumulation, the process proceeds to step S5.
 ステップS5にて、実行トレース収集部1は、実行トレース6を取得した回数が、予め指定された指定回数に達しているか否かを判定する。達していないと判定された場合には処理がステップS4に戻り、当該ステップS4にて実行トレース収集部1は、実行トレース6を別の条件下で取得し、実行トレース蓄積部2に蓄積する。達していると判定された場合には処理がステップS6に進む。 In step S5, the execution trace collecting unit 1 determines whether or not the number of times the execution trace 6 has been acquired has reached the specified number of times specified in advance. If it is determined that the value has not been reached, the process returns to step S4, and in step S4, the execution trace collection unit 1 acquires the execution trace 6 under different conditions and accumulates it in the execution trace storage unit 2. If it is determined that the value has been reached, the process proceeds to step S6.
 ステップS6にて、代表実行トレース算出部3は、実行トレース蓄積部2に蓄積された変更後ソフトウェアの複数の実行トレース6に基づいて、変更後ソフトウェアの代表実行トレース7を算出し、代表実行トレース蓄積部4に蓄積する。蓄積後、処理がステップS7に進む。 In step S6, the representative execution trace calculation unit 3 calculates the representative execution trace 7 of the modified software based on the plurality of execution traces 6 of the modified software accumulated in the execution trace storage unit 2, and the representative execution trace is calculated. Accumulate in the storage unit 4. After the accumulation, the process proceeds to step S7.
 ステップS7にて、表示部5は、代表実行トレース蓄積部4に蓄積された代表実行トレース7を表示する。表示部5は、例えば、変更前ソフトウェアの代表実行トレース7及び変更後ソフトウェアの代表実行トレース7を選択的または同時に表示する。これにより、ユーザは、変更前ソフトウェアと変更後ソフトウェアとの間で行われた変更によるソフトウェアの性能への影響を確認することができる。表示後、図5の動作が終了する。 In step S7, the display unit 5 displays the representative execution trace 7 accumulated in the representative execution trace storage unit 4. The display unit 5 selectively or simultaneously displays, for example, the representative execution trace 7 of the software before the change and the representative execution trace 7 of the software after the change. This allows the user to see the effect of changes made between the pre-change software and the post-change software on the performance of the software. After the display, the operation of FIG. 5 ends.
 図6は、ステップS3及びステップS6における、代表実行トレース7の算出動作を示すフローチャートである。以下、図6を用いてこの動作を説明する。 FIG. 6 is a flowchart showing the calculation operation of the representative execution trace 7 in steps S3 and S6. Hereinafter, this operation will be described with reference to FIG.
 まず、ステップS11にて、代表実行トレース算出部3は、イベント系列リストを空にする。その後、処理がステップS12に進む。 First, in step S11, the representative execution trace calculation unit 3 empties the event series list. After that, the process proceeds to step S12.
 ステップS12にて、代表実行トレース算出部3は、実行トレース蓄積部2から実行トレース6を取得する。取得後、処理がステップS13に進む。 In step S12, the representative execution trace calculation unit 3 acquires the execution trace 6 from the execution trace storage unit 2. After the acquisition, the process proceeds to step S13.
 ステップS13にて、代表実行トレース算出部3は、ステップS12で取得された実行トレース6のイベント系列がイベント系列リストに存在するか否かを確認する。存在しない場合にはステップS14に処理が進み、存在する場合にはステップS15に進む。 In step S13, the representative execution trace calculation unit 3 confirms whether or not the event series of the execution trace 6 acquired in step S12 exists in the event series list. If it does not exist, the process proceeds to step S14, and if it exists, the process proceeds to step S15.
 ステップS14にて、代表実行トレース算出部3は、存在しなかったイベント系列をイベント系列リストに追加する。追加後、処理がステップS15に進む。 In step S14, the representative execution trace calculation unit 3 adds the event sequence that did not exist to the event sequence list. After the addition, the process proceeds to step S15.
 ステップS15にて、代表実行トレース算出部3は、イベント系列リストにあるイベント系列のイベントについて、直前のイベントから差分時間を算出する。算出後、処理がステップS16に進む。 In step S15, the representative execution trace calculation unit 3 calculates the difference time from the immediately preceding event for the event of the event series in the event series list. After the calculation, the process proceeds to step S16.
 ステップS16にて、代表実行トレース算出部3は、実行トレース蓄積部2に蓄積された複数の実行トレース6のうち未処理の実行トレース6が存在するか否かを判定する。存在すると判定された場合には処理がステップS12に戻り、当該ステップS12にて、代表実行トレース算出部3は、実行トレース蓄積部2から未処理の実行トレース6を取得する。存在しないと判定された場合には処理がステップS17に進む。以上の動作により、同じ種類のイベントが、最大で複数の実行トレース6と同じ数だけ得られ、それぞれについて差分時間が算出される。例えば、図2のような実行トレース6がN(Nは1以上の自然数)個収集されていた場合には、funcA@enterという1種類のイベントがN個得られ、それぞれについて差分時間が算出される。つまり、1種類のN(Nは1以上の自然数)個のイベントの差分時間が算出される。 In step S16, the representative execution trace calculation unit 3 determines whether or not there is an unprocessed execution trace 6 among the plurality of execution traces 6 accumulated in the execution trace storage unit 2. If it is determined that it exists, the process returns to step S12, and in step S12, the representative execution trace calculation unit 3 acquires the unprocessed execution trace 6 from the execution trace storage unit 2. If it is determined that it does not exist, the process proceeds to step S17. By the above operation, a maximum of the same number of events of the same type as a plurality of execution traces 6 are obtained, and the difference time is calculated for each of them. For example, when N (N is a natural number of 1 or more) of execution traces 6 as shown in FIG. 2 are collected, N events of one type called funca @ enter are obtained, and the difference time is calculated for each of them. To. That is, the difference time of one type of N (N is a natural number of 1 or more) events is calculated.
 ステップS17にて、代表実行トレース算出部3は、イベント系列リストから1種類の1以上のイベントを取得する。取得後、処理がステップS18に進む。 In step S17, the representative execution trace calculation unit 3 acquires one or more events of one type from the event series list. After the acquisition, the process proceeds to step S18.
 ステップS18にて、代表実行トレース算出部3は、1種類の1以上のイベントの差分時間から、平均値及び分散値を算出する。代表実行トレース算出部3は、1種類のイベントと、当該1種類のイベントの平均差分時間及び分散差分時間とを含む代表実行トレース7を生成する。その後、処理がステップS19に進む。 In step S18, the representative execution trace calculation unit 3 calculates the mean value and the variance value from the difference time of one or more events of one type. The representative execution trace calculation unit 3 generates a representative execution trace 7 including one type of event and the average difference time and the distributed difference time of the one type of event. After that, the process proceeds to step S19.
 ステップS19にて、代表実行トレース算出部3は、イベント系列リストに未処理のイベントが存在するか否かを判定する。存在すると判定された場合には処理がステップS17に戻り、当該ステップS17にて、代表実行トレース算出部3は、イベント系列リストから未処理のイベントを取得する。存在しないと判定された場合には、図6の動作が終了する。 In step S19, the representative execution trace calculation unit 3 determines whether or not there is an unprocessed event in the event series list. If it is determined that the event exists, the process returns to step S17, and in step S17, the representative execution trace calculation unit 3 acquires an unprocessed event from the event sequence list. If it is determined that it does not exist, the operation of FIG. 6 ends.
 <実施の形態1のまとめ>
 以上のような本実施の形態1に係る影響分析装置によれば、異なる複数の条件下でそれぞれ収集された複数の実行トレース6に基づいて、複数のイベントのそれぞれの時刻の平均及びばらつきを含む代表実行トレース7を算出して表示する。このような構成によれば、ソフトウェアの性能に対するソフトウェア実行時の条件の差による影響、例えば、他タスクや他プロセス、割込などの影響を確認するための表示を行うことができる。したがって、ユーザは、当該影響を考慮した性能影響を確認することができる。
<Summary of Embodiment 1>
According to the impact analyzer according to the first embodiment as described above, the average and variation of the time of each of the plurality of events are included based on the plurality of execution traces 6 collected under different plurality of conditions. The representative execution trace 7 is calculated and displayed. According to such a configuration, it is possible to display for confirming the influence of the difference in the conditions at the time of software execution on the performance of the software, for example, the influence of other tasks, other processes, interruptions, and the like. Therefore, the user can confirm the performance impact in consideration of the impact.
 <実施の形態2>
 実施の形態1によれば、ユーザは、代表実行トレース7の時刻の平均である平均時刻と実行トレース6の時刻とを比較し、代表実行トレース7からある程度の差を有する実行トレース6を特定することで、その差の原因を調査することができる。しかしながら、代表実行トレース7のイベント系列が長い場合や、複数の実行トレース6の数が多い場合には、その作業は困難になる。このことに鑑みて、以下の説明で明らかとなるように、本発明の実施の形態2に係る影響分析装置では、代表実行トレース7からある程度の差を有する実行トレース6を自動的に抽出することが可能となっている。
<Embodiment 2>
According to the first embodiment, the user compares the average time, which is the average of the times of the representative execution trace 7, with the time of the execution trace 6, and identifies the execution trace 6 having a certain difference from the representative execution trace 7. Therefore, the cause of the difference can be investigated. However, when the event sequence of the representative execution trace 7 is long or when the number of the plurality of execution traces 6 is large, the work becomes difficult. In view of this, as will be clarified in the following description, the impact analyzer according to the second embodiment of the present invention automatically extracts the execution trace 6 having a certain difference from the representative execution trace 7. Is possible.
 図7は、本実施の形態2に係る影響分析装置の構成を示すブロック図である。以下、本実施の形態2に係る構成要素のうち、上述の構成要素と同じまたは類似する構成要素については同じまたは類似する参照符号を付し、異なる構成要素について主に説明する。 FIG. 7 is a block diagram showing the configuration of the impact analysis device according to the second embodiment. Hereinafter, among the components according to the second embodiment, the components that are the same as or similar to the above-mentioned components are designated by the same or similar reference numerals, and different components will be mainly described.
 図7に示す影響分析装置の構成は、実施の形態1に係る影響分析装置の構成(図1)に、抽出部である実行トレース外れ値抽出部8が追加された構成と同様である。実行トレース蓄積部2の入力は、実行トレース収集部1の出力と接続される。代表実行トレース算出部3の入力は、実行トレース蓄積部2の出力と接続される。代表実行トレース算出部3の入力は、実行トレース蓄積部2の出力と接続される。代表実行トレース蓄積部4の入力は、代表実行トレース算出部3の出力と接続される。実行トレース外れ値抽出部8の入力は、実行トレース蓄積部2の出力、及び、代表実行トレース蓄積部4の出力と接続される。表示部5の入力は、代表実行トレース蓄積部4の出力、及び、実行トレース外れ値抽出部8の出力と接続される。 The configuration of the impact analysis device shown in FIG. 7 is the same as the configuration in which the execution trace outlier extraction unit 8 which is the extraction unit is added to the configuration of the impact analysis device according to the first embodiment (FIG. 1). The input of the execution trace storage unit 2 is connected to the output of the execution trace collection unit 1. The input of the representative execution trace calculation unit 3 is connected to the output of the execution trace storage unit 2. The input of the representative execution trace calculation unit 3 is connected to the output of the execution trace storage unit 2. The input of the representative execution trace storage unit 4 is connected to the output of the representative execution trace calculation unit 3. The input of the execution trace outlier extraction unit 8 is connected to the output of the execution trace storage unit 2 and the output of the representative execution trace storage unit 4. The input of the display unit 5 is connected to the output of the representative execution trace storage unit 4 and the output of the execution trace outlier extraction unit 8.
 本実施の形態2では、代表実行トレース蓄積部4は、互いの複数のイベントの組み合わせが異なる複数の代表実行トレース7(例えば図10のトレースA~Dに類似するトレース)を蓄積している。ここでいう複数のイベントの組み合わせが異なることは、イベントの種類及び個数の少なくともいずれか1つが異なることを含む。 In the second embodiment, the representative execution trace storage unit 4 stores a plurality of representative execution traces 7 (for example, traces similar to the traces A to D in FIG. 10) in which combinations of a plurality of events are different from each other. The difference in the combination of the plurality of events referred to here includes that at least one of the types and the number of events is different.
 実行トレース外れ値抽出部8は、代表実行トレース蓄積部4に蓄積された複数の代表実行トレース7のうち、実行トレース蓄積部2に蓄積された複数の実行トレース6と複数のイベントの組み合わせの差が最も小さい代表実行トレース7を取得する。以下、実行トレース外れ値抽出部8で取得された代表実行トレース7を「最近傍系列の代表実行トレース7」と記すこともある。 The execution trace outlier extraction unit 8 is the difference between the combination of the plurality of execution traces 6 stored in the execution trace storage unit 2 and the combination of the plurality of events among the plurality of representative execution traces 7 stored in the representative execution trace storage unit 4. Gets the smallest representative execution trace 7. Hereinafter, the representative execution trace 7 acquired by the execution trace outlier extraction unit 8 may be referred to as the “representative execution trace 7 of the nearest neighbor series”.
 実行トレース外れ値抽出部8は、最近傍系列の代表実行トレース7に含まれる平均である平均時刻を基準とする許容範囲を規定し、実行トレース蓄積部2に蓄積された複数の実行トレース6のうち、時刻が当該許容範囲外である実行トレース6を抽出する。以下、実行トレース外れ値抽出部8で抽出された実行トレース6を「外れ値の実行トレース6」と記すこともある。 The execution trace outlier extraction unit 8 defines an allowable range based on the average time, which is the average included in the representative execution trace 7 of the nearest neighbor series, and is a plurality of execution traces 6 accumulated in the execution trace storage unit 2. Among them, the execution trace 6 whose time is out of the permissible range is extracted. Hereinafter, the execution trace 6 extracted by the execution trace outlier extraction unit 8 may be referred to as “outlier execution trace 6”.
 表示部5は、実行トレース外れ値抽出部8より抽出された外れ値の実行トレース6を、抽出に用いた最近傍系列の代表実行トレース7に重畳して表示する。これにより、ユーザは、代表実行トレース7と、当該代表実行トレース7からある程度の差を有する実行トレース6とを確認することができる。 The display unit 5 superimposes and displays the execution trace 6 of the outliers extracted from the execution trace outlier extraction unit 8 on the representative execution trace 7 of the nearest neighbor series used for the extraction. As a result, the user can confirm the representative execution trace 7 and the execution trace 6 having a certain difference from the representative execution trace 7.
 <動作>
 図8にて、本実施の形態2に係る影響分析装置が変更影響を可視化する動作を示すフローチャートである。以下、図8を用いてこの動作を説明する。
<Operation>
FIG. 8 is a flowchart showing an operation in which the impact analysis device according to the second embodiment visualizes the effect of change. Hereinafter, this operation will be described with reference to FIG.
 ステップS21~ステップS23では、変更前ソフトウェアについて、実施の形態1で説明した図5のステップS1~ステップS3の処理と同様の処理が行われる。まず、ステップS21にて、実行トレース収集部1は、変更前ソフトウェアの実行トレース6をある条件下で取得し、実行トレース蓄積部2に蓄積する。蓄積後、処理がステップS22に進む。 In steps S21 to S23, the same processing as the processing of steps S1 to S3 of FIG. 5 described in the first embodiment is performed on the software before change. First, in step S21, the execution trace collecting unit 1 acquires the execution trace 6 of the software before the change under certain conditions and accumulates it in the execution trace accumulating unit 2. After the accumulation, the process proceeds to step S22.
 ステップS22にて、実行トレース収集部1は、実行トレース6を取得した回数が、予め指定された指定回数に達しているか否かを判定する。達していないと判定された場合には処理がステップS21に戻り、当該ステップS21にて実行トレース収集部1は、実行トレース6を別の条件下で取得し、実行トレース蓄積部2に蓄積する。達していると判定された場合には処理がステップS23に進む。これにより、変更前ソフトウェアの複数の実行トレース6が実行トレース蓄積部2に蓄積される。 In step S22, the execution trace collecting unit 1 determines whether or not the number of times the execution trace 6 has been acquired has reached the specified number of times specified in advance. If it is determined that the result has not been reached, the process returns to step S21, and in step S21, the execution trace collecting unit 1 acquires the execution trace 6 under different conditions and accumulates it in the execution trace storage unit 2. If it is determined that the value has been reached, the process proceeds to step S23. As a result, a plurality of execution traces 6 of the software before the change are accumulated in the execution trace storage unit 2.
 ステップS23にて、代表実行トレース算出部3は、実行トレース蓄積部2に蓄積された変更前ソフトウェアの複数の実行トレース6に基づいて、変更前ソフトウェアの代表実行トレース7を算出し、代表実行トレース蓄積部4に蓄積する。 In step S23, the representative execution trace calculation unit 3 calculates the representative execution trace 7 of the pre-change software based on the plurality of execution traces 6 of the pre-change software accumulated in the execution trace storage unit 2, and the representative execution trace is calculated. Accumulate in the storage unit 4.
 以上の処理は、複数のイベントの組み合わせが互いに異なる複数の実行トレース6(例えば図10のトレースA~Dに類似するトレース)について行われる。その結果、変更前ソフトウェアについて、互いの複数のイベントの組み合わせが異なる複数の代表実行トレース7が代表実行トレース蓄積部4に蓄積される。蓄積後、処理がステップS24に進む。 The above processing is performed on a plurality of execution traces 6 (for example, traces similar to traces A to D in FIG. 10) in which combinations of a plurality of events are different from each other. As a result, with respect to the software before change, a plurality of representative execution traces 7 having different combinations of a plurality of events are accumulated in the representative execution trace storage unit 4. After the accumulation, the process proceeds to step S24.
 ステップS24及びステップS25では、変更後ソフトウェアについて、ステップS21及びステップS22と同様の処理が行われる。これにより、変更後ソフトウェアの複数の実行トレース6が実行トレース蓄積部2に蓄積される。蓄積後、処理がステップS26に進む。 In step S24 and step S25, the same processing as in step S21 and step S22 is performed for the changed software. As a result, a plurality of execution traces 6 of the modified software are accumulated in the execution trace storage unit 2. After the accumulation, the process proceeds to step S26.
 ステップS26にて、実行トレース外れ値抽出部8は、代表実行トレース蓄積部4に蓄積された変更前ソフトウェアの複数の代表実行トレース7から、変更前ソフトウェアの最近傍系列の代表実行トレース7を取得する。そして、実行トレース外れ値抽出部8は、変更前ソフトウェアの最近傍系列の代表実行トレース7と、実行トレース蓄積部2に蓄積された変更後ソフトウェアの複数の実行トレース6とを比較し、変更後ソフトウェアについて外れ値の実行トレース6を抽出する。それから、表示部5は、抽出された外れ値の実行トレース6を、最近傍系列の代表実行トレース7に重畳して表示する。これにより、ユーザは、変更前ソフトウェアの代表実行トレース7と、当該代表実行トレース7からある程度の差を有する変更後ソフトウェアの実行トレース6とを確認することができる。 In step S26, the execution trace outlier extraction unit 8 acquires the representative execution trace 7 of the nearest neighbor series of the software before change from the plurality of representative execution traces 7 of the software before change accumulated in the representative execution trace storage unit 4. To do. Then, the execution trace outlier extraction unit 8 compares the representative execution trace 7 of the nearest series of the software before the change with the plurality of execution traces 6 of the software after the change accumulated in the execution trace storage unit 2, and after the change. Extract the outlier execution trace 6 for the software. Then, the display unit 5 superimposes and displays the extracted execution trace 6 of the outliers on the representative execution trace 7 of the nearest neighbor series. As a result, the user can confirm the representative execution trace 7 of the software before the change and the execution trace 6 of the software after the change having a certain difference from the representative execution trace 7.
 図9は、ステップS26における、最近傍系列の代表実行トレース7の取得動作、並びに、外れ値の実行トレース6の抽出動作及び表示動作を示すフローチャートである。以下、図9を用いてこれらの動作を説明する。 FIG. 9 is a flowchart showing the acquisition operation of the representative execution trace 7 of the nearest neighbor series and the extraction operation and the display operation of the outlier execution trace 6 in step S26. Hereinafter, these operations will be described with reference to FIG.
 まず、ステップS31にて、実行トレース外れ値抽出部8は、代表実行トレース蓄積部4から代表実行トレース7を取得する。取得後、処理がステップS32に進む。 First, in step S31, the execution trace outlier extraction unit 8 acquires the representative execution trace 7 from the representative execution trace storage unit 4. After the acquisition, the process proceeds to step S32.
 ステップS32にて、実行トレース外れ値抽出部8は、ステップS31で取得された代表実行トレース7と、実行トレース蓄積部2に蓄積された複数の実行トレース6との間の、複数のイベントの組み合わせの差を算出する。算出後、処理がステップS33に進む。 In step S32, the execution trace outlier extraction unit 8 combines a plurality of events between the representative execution trace 7 acquired in step S31 and the plurality of execution traces 6 accumulated in the execution trace storage unit 2. Calculate the difference between. After the calculation, the process proceeds to step S33.
 ステップS33にて、実行トレース外れ値抽出部8は、ステップS32で算出された差が、最近傍系列の代表実行トレース7について同様に算出された差よりも小さいか否かを判定する。小さいと判定された場合には処理がステップS34に進み、小さくないと判定された場合には処理がステップS35に進む。 In step S33, the execution trace outlier extraction unit 8 determines whether or not the difference calculated in step S32 is smaller than the difference calculated similarly for the representative execution trace 7 of the nearest neighbor series. If it is determined that it is small, the process proceeds to step S34, and if it is determined that it is not small, the process proceeds to step S35.
 ステップS34にて、実行トレース外れ値抽出部8は、最近傍系列の代表実行トレース7を、ステップS31で取得された代表実行トレース7に更新する。更新後、処理がステップS35に進む。 In step S34, the execution trace outlier extraction unit 8 updates the representative execution trace 7 of the nearest neighbor series to the representative execution trace 7 acquired in step S31. After the update, the process proceeds to step S35.
 ステップS35にて、実行トレース外れ値抽出部8は、代表実行トレース蓄積部4に蓄積された複数の代表実行トレース7のうち未処理の代表実行トレース7が存在するか否かを判定する。存在すると判定された場合には処理がステップS31に戻り、当該ステップS31にて、実行トレース外れ値抽出部8は、代表実行トレース蓄積部4から未処理の代表実行トレース7を取得する。存在しないと判定された場合には処理がステップS36に進む。 In step S35, the execution trace outlier extraction unit 8 determines whether or not an unprocessed representative execution trace 7 exists among the plurality of representative execution traces 7 accumulated in the representative execution trace storage unit 4. If it is determined that it exists, the process returns to step S31, and in step S31, the execution trace outlier extraction unit 8 acquires the unprocessed representative execution trace 7 from the representative execution trace storage unit 4. If it is determined that it does not exist, the process proceeds to step S36.
 図10は、ステップS32~ステップS35の動作例を説明するための図である。図10の例では、基準トレースは、実行トレース蓄積部2に蓄積された実行トレース6であり、トレースAは、1回目のステップS31で取得された代表実行トレース7であり、…、トレースDは、4回目のステップS31で取得された代表実行トレース7である。以下、複数のイベントの組み合わせの差を「イベントの差」と略して説明する。 FIG. 10 is a diagram for explaining an operation example of steps S32 to S35. In the example of FIG. 10, the reference trace is the execution trace 6 accumulated in the execution trace storage unit 2, the trace A is the representative execution trace 7 acquired in the first step S31, and ..., the trace D is This is the representative execution trace 7 acquired in the fourth step S31. Hereinafter, the difference in the combination of a plurality of events will be abbreviated as “event difference”.
 基準トレースのイベント系列では、funcA関数が呼び出され、funcA関数の中でfuncB関数及びfuncC関数が呼び出されている。トレースAのイベント系列は、基準トレースのイベント系列と等しいため、イベントの差は「0」となる。 In the event series of the reference trace, the funcA function is called, and the funcB function and the funcC function are called in the funcaA function. Since the event series of the trace A is equal to the event series of the reference trace, the difference between the events is "0".
 トレースBのイベント系列では、funcA関数の中でfuncC関数のみが呼び出されている。つまり、トレースBのイベント系列では、funcB関数の呼び出しに伴うfuncB関数の入口イベント及び出口イベントがないため、イベントの差は「2」となる。 In the event series of trace B, only the funcC function is called in the funcA function. That is, in the event series of trace B, since there is no entrance event and exit event of the funcB function accompanying the call of the funcB function, the difference between the events is "2".
 トレースCのイベント系列では、funcA関数の中でfuncB関数及びfuncD関数が呼び出されている。つまり、トレースCのイベント系列では、funcC関数ではなくfuncD関数が呼び出され、funcC関数の入口イベント及び出口イベントとfuncD関数の入口イベント及び出口イベントとが異なるため、イベントの差は「2」となる。 In the event series of trace C, the funcB function and the funcD function are called in the funcA function. That is, in the event series of trace C, the funcD function is called instead of the funcC function, and the entrance event and exit event of the funcC function and the entrance event and exit event of the funcD function are different, so that the difference between the events is "2". ..
 トレースDのイベント系列では、funcA関数の中でfuncB関数、funcC関数、及び、funcD関数が呼び出されている。funcD関数が呼び出される分だけ、funcD関数の入口イベント及び出口イベントが増えているため、イベントの差は「2」となる。 In the event series of trace D, the funcB function, the funcC function, and the funcD function are called in the funcA function. Since the entrance event and exit event of the funcD function are increased by the amount that the funcD function is called, the difference between the events is "2".
 実行トレース外れ値抽出部8は、以上の例についてステップS32~ステップS35の処理を行った場合、トレースA~Dのうち実行トレース6とのイベントの差が最も小さいトレースAを、最近傍系列の代表実行トレース7として取得する。 When the execution trace outlier extraction unit 8 performs the processing of steps S32 to S35 for the above example, the execution trace outlier extraction unit 8 sets the trace A having the smallest event difference from the execution trace 6 among the traces A to D as the nearest neighbor series. Acquired as the representative execution trace 7.
 なお、以上の説明では、代表実行トレース7と比較される、複数の実行トレース6同士の複数のイベントの組み合わせは互いに同じである場合について説明したが、互いに異なる場合もある。このような場合には、例えば、実行トレース外れ値抽出部8は、各実行トレース6と、代表実行トレース7とのイベントの差を求め、複数の実行トレース6について当該差を合計した値が最も小さくなる代表実行トレース7を、最近傍系列の代表実行トレース7として取得すればよい。例えば、複数の実行トレース6として、図11の第1基準トレースが1つ、図11の第2基準トレースが5つ存在する場合、トレースA、トレースB、トレースC、トレースDのイベントの差は、それぞれ2、10、14、14となる。このような場合に、実行トレース外れ値抽出部8は、トレースA~Dのうち実行トレース6とのイベントの差が最も小さいトレースAを、最近傍系列の代表実行トレース7として取得すればよい。 In the above description, the combination of a plurality of events of a plurality of execution traces 6 compared with the representative execution trace 7 has been described as being the same as each other, but they may be different from each other. In such a case, for example, the execution trace outlier extraction unit 8 obtains the difference between the events of each execution trace 6 and the representative execution trace 7, and the value obtained by summing the differences for the plurality of execution traces 6 is the largest. The smaller representative execution trace 7 may be acquired as the representative execution trace 7 of the nearest neighbor series. For example, when there is one first reference trace in FIG. 11 and five second reference traces in FIG. 11 as a plurality of execution traces 6, the difference between the events of trace A, trace B, trace C, and trace D is , 2, 10, 14, and 14, respectively. In such a case, the execution trace outlier extraction unit 8 may acquire the trace A having the smallest event difference from the execution trace 6 among the traces A to D as the representative execution trace 7 of the nearest neighbor series.
 図9のステップS36以降の処理は、実行トレース蓄積部2に蓄積された複数の実行トレース6のそれぞれについて行われる。 The processing after step S36 in FIG. 9 is performed for each of the plurality of execution traces 6 stored in the execution trace storage unit 2.
 まず、ステップS36にて、実行トレース外れ値抽出部8は、最近傍系列の代表実行トレース7からイベントを取得する。その後、処理がステップS37に進む。 First, in step S36, the execution trace outlier extraction unit 8 acquires an event from the representative execution trace 7 of the nearest neighbor series. After that, the process proceeds to step S37.
 ステップS37にて、実行トレース外れ値抽出部8は、ステップS36で取得されたイベントの平均時刻を基準とする許容範囲を規定する。例えば、実行トレース外れ値抽出部8は、代表実行トレース7に含まれる分散を、分散時刻とした場合、許容範囲を、平均時刻±(分散時間×2)の範囲として規定する。実行トレース外れ値抽出部8は、実行トレース6のイベントの時刻が許容範囲内に収まっているか否かを判定する。収まっていると判定された場合には、処理がステップS38に進む。収まっていないと判定された場合には、処理がステップS39に進む。 In step S37, the execution trace outlier extraction unit 8 defines an allowable range based on the average time of the events acquired in step S36. For example, when the variance included in the representative execution trace 7 is the variance time, the execution trace outlier extraction unit 8 defines the permissible range as the range of the average time ± (dispersion time × 2). The execution trace outlier extraction unit 8 determines whether or not the time of the event of the execution trace 6 is within the permissible range. If it is determined that the amount is settled, the process proceeds to step S38. If it is determined that it does not fit, the process proceeds to step S39.
 ステップS38にて、実行トレース外れ値抽出部8は、最近傍系列の代表実行トレース7のうち未処理のイベントが存在するか否かを判定する。存在すると判定された場合には処理がステップS36に戻り、当該ステップS36にて、実行トレース外れ値抽出部8は、最近傍系列の代表実行トレース7から未処理のイベントを取得する。存在しないと判定された場合には、図9の動作が終了する。 In step S38, the execution trace outlier extraction unit 8 determines whether or not an unprocessed event exists in the representative execution trace 7 of the nearest neighbor series. If it is determined that the event exists, the process returns to step S36, and in step S36, the execution trace outlier extraction unit 8 acquires an unprocessed event from the representative execution trace 7 of the nearest neighbor series. If it is determined that it does not exist, the operation of FIG. 9 ends.
 ステップS39にて、実行トレース外れ値抽出部8は、ステップS37で判定された実行トレース6を外れ値の実行トレース6として決定し、表示部5は、外れ値の実行トレース6を、抽出に用いた最近傍系列の代表実行トレース7に重畳して表示する。表示後、図9の動作が終了する。 In step S39, the execution trace outlier extraction unit 8 determines the execution trace 6 determined in step S37 as the outlier execution trace 6, and the display unit 5 uses the outlier execution trace 6 for extraction. It is superimposed and displayed on the representative execution trace 7 of the nearest neighbor series. After the display, the operation of FIG. 9 ends.
 図12は、ステップS39の表示例を示す図である。点線は最近傍系列の代表実行トレース7を示し、実線は外れ値の実行トレース6を示す。図12に示されるような表示によれば、外れ値の実行トレース6のうち、funcA関数からfuncB関数に遷移するタイミング、及び、funcA関数からfuncC関数に遷移するタイミングが、代表実行トレース7の許容範囲から外れていることが読み取れる。 FIG. 12 is a diagram showing a display example of step S39. The dotted line shows the representative execution trace 7 of the nearest neighbor series, and the solid line shows the execution trace 6 of outliers. According to the display as shown in FIG. 12, of the outlier execution traces 6, the timing of transition from the funca function to the funcB function and the timing of transition from the funca function to the funcC function are allowed by the representative execution trace 7. It can be read that it is out of range.
 <実施の形態2のまとめ>
 以上のような本実施の形態2に係る影響分析装置によれば、実行トレース蓄積部2に蓄積された複数の実行トレース6のうち、時刻が許容範囲外である実行トレース6を抽出して表示する。このような構成によれば、ユーザは、代表実行トレース7と、当該代表実行トレース7からある程度の差を有する実行トレース6とを確認することができる。このため、実行トレース6を代表実行トレース7から異ならせた原因の調査の容易化が期待できる。
<Summary of Embodiment 2>
According to the impact analyzer according to the second embodiment as described above, the execution trace 6 whose time is out of the permissible range is extracted and displayed from the plurality of execution traces 6 stored in the execution trace storage unit 2. To do. According to such a configuration, the user can confirm the representative execution trace 7 and the execution trace 6 having a certain difference from the representative execution trace 7. Therefore, it can be expected that the investigation of the cause of the difference between the execution trace 6 and the representative execution trace 7 can be facilitated.
 なお以上の説明において、実行トレース外れ値抽出部8は、最近傍系列の代表実行トレース7の平均時刻との差が一定値以上である実行トレース6を抽出し、表示部5は当該実行トレース6を表示したが、これに限ったものではない。例えば、実行トレース外れ値抽出部8は、最近傍系列の代表実行トレース7に対して複数のイベントの組み合わせの差が一定数以上である実行トレース6を抽出し、表示部5は当該実行トレース6を表示してもよい。このような構成によっても、異ならせた原因の調査の容易化が期待できる。 In the above description, the execution trace outlier extraction unit 8 extracts the execution trace 6 in which the difference from the average time of the representative execution trace 7 of the nearest neighbor series is equal to or more than a certain value, and the display unit 5 extracts the execution trace 6 Was displayed, but it is not limited to this. For example, the execution trace outlier extraction unit 8 extracts the execution trace 6 in which the difference between the combinations of a plurality of events is a certain number or more with respect to the representative execution trace 7 of the nearest neighbor series, and the display unit 5 extracts the execution trace 6 May be displayed. Even with such a configuration, it can be expected that the investigation of different causes can be facilitated.
 <実施の形態3>
 実施の形態1及び実施の形態2では、実行トレース収集部1で収集される実行トレース6は、開始イベント及び終了イベントが同一であることを前提とした。もし、実行トレース収集部1が収集する実行トレース6の開始イベント及び終了イベントが同一でない場合には、実行トレース6同士を正しく比較できない可能性がある。このことに鑑みて、以下の説明で明らかとなるように、本発明の実施の形態3に係る影響分析装置では、複数の実行トレース6のイベントの開始及び終了を揃えることが可能となっている。
<Embodiment 3>
In the first embodiment and the second embodiment, it is assumed that the execution trace 6 collected by the execution trace collecting unit 1 has the same start event and end event. If the start event and end event of the execution trace 6 collected by the execution trace collection unit 1 are not the same, there is a possibility that the execution traces 6 cannot be compared correctly with each other. In view of this, as will be clarified in the following description, the impact analyzer according to the third embodiment of the present invention can align the start and end of the events of the plurality of execution traces 6. ..
 図13は、本実施の形態3に係る影響分析装置の構成を示すブロック図である。以下、本実施の形態3に係る構成要素のうち、上述の構成要素と同じまたは類似する構成要素については同じまたは類似する参照符号を付し、異なる構成要素について主に説明する。 FIG. 13 is a block diagram showing the configuration of the impact analysis device according to the third embodiment. Hereinafter, among the components according to the third embodiment, the components that are the same as or similar to the above-mentioned components are designated by the same or similar reference numerals, and different components will be mainly described.
 図13に示す影響分析装置は、実施の形態2に係る影響分析装置の構成(図7)に、制限部であるイベント制限部10が追加された構成と同様である。 The impact analysis device shown in FIG. 13 is the same as the configuration in which the event restriction unit 10 which is a restriction unit is added to the configuration (FIG. 7) of the impact analysis device according to the second embodiment.
 イベント制限部10の入力は実行トレース収集部1の出力と接続される。実行トレース蓄積部2の入力はイベント制限部10の出力と接続される。代表実行トレース算出部3の入力は、実行トレース蓄積部2の出力と接続される。代表実行トレース蓄積部4の入力は、代表実行トレース算出部3の出力と接続される。実行トレース外れ値抽出部8の入力は、実行トレース蓄積部2の出力、及び、代表実行トレース蓄積部4の出力と接続される。表示部5の入力は、代表実行トレース蓄積部4の出力、及び、実行トレース外れ値抽出部8の出力と接続される。 The input of the event restriction unit 10 is connected to the output of the execution trace collection unit 1. The input of the execution trace storage unit 2 is connected to the output of the event restriction unit 10. The input of the representative execution trace calculation unit 3 is connected to the output of the execution trace storage unit 2. The input of the representative execution trace storage unit 4 is connected to the output of the representative execution trace calculation unit 3. The input of the execution trace outlier extraction unit 8 is connected to the output of the execution trace storage unit 2 and the output of the representative execution trace storage unit 4. The input of the display unit 5 is connected to the output of the representative execution trace storage unit 4 and the output of the execution trace outlier extraction unit 8.
 イベント制限部10は、実行トレース蓄積部2に蓄積される実行トレース6を、実行トレース収集部1で収集された実行トレース6のうち、予め指定された開始イベントと予め指定された終了イベントとを有する実行トレース6に制限する。実行トレース収集部1で収集された実行トレース6に、開始イベントと同じイベントから終了イベントと同じイベントまでのイベント系列が1つ以上存在する場合、イベント制限部10は、イベント系列を実行トレース6として、実行トレース蓄積部2に格納する。実行トレース収集部1で収集された実行トレース6に、開始イベントと同じイベントから終了イベントと同じイベントまでのイベント系列が1つも存在しない場合、イベント制限部10は実行トレース6を実行トレース蓄積部2に格納しない。 The event limiting unit 10 uses the execution trace 6 accumulated in the execution trace accumulating unit 2 as a predetermined start event and a pre-designated end event among the execution traces 6 collected by the execution trace collecting unit 1. It is limited to the execution trace 6 which has. When the execution trace 6 collected by the execution trace collection unit 1 has one or more event sequences from the same event as the start event to the same event as the end event, the event restriction unit 10 sets the event sequence as the execution trace 6. , Stored in the execution trace storage unit 2. If the execution trace 6 collected by the execution trace collection unit 1 does not have any event sequence from the same event as the start event to the same event as the end event, the event restriction unit 10 executes the execution trace 6 and the execution trace storage unit 2 Do not store in.
 図14は、イベント制限部10で指定される開始イベント及び終了イベントの例を示す図である。図14では、開始イベントにfuncA関数の入口イベントが指定され、終了イベントにfuncA関数の出口イベントが指定されている。 FIG. 14 is a diagram showing an example of a start event and an end event specified by the event restriction unit 10. In FIG. 14, the entrance event of the funca function is specified as the start event, and the exit event of the funca function is specified as the end event.
 図15は、図14の開始イベント及び出口イベントを用いたイベント制限の一例を説明するための図である。入力イベント系列、つまり実行トレース収集部1で収集された実行トレース6では、funcE関数がfuncA関数を呼び出した後、funcA関数がfuncB関数及びfuncC関数をこの順に呼び出している。図14のように、funcA関数の入口イベント及び出口イベントが開始イベント及び終了イベントに指定された場合、イベント制限部10は、funcA関数がfuncB関数及びfuncC関数をこの順に呼び出しているイベント系列のみを、出力イベント系列として出力する。これにより、図14及び図15の例では、funcE関数の入口イベント及び出口イベントを含まないイベント系列が、実行トレース6として実行トレース蓄積部2に蓄積される。 FIG. 15 is a diagram for explaining an example of event restriction using the start event and the exit event of FIG. In the input event series, that is, the execution trace 6 collected by the execution trace collecting unit 1, the funcaE function calls the funcaA function, and then the funcaA function calls the funcB function and the funcC function in this order. As shown in FIG. 14, when the entrance event and the exit event of the funca function are specified as the start event and the end event, the event restriction unit 10 limits only the event sequence in which the funca function calls the func B function and the func C function in this order. , Output as an output event series. As a result, in the examples of FIGS. 14 and 15, an event sequence that does not include the entrance event and the exit event of the funcE function is accumulated in the execution trace storage unit 2 as the execution trace 6.
 <動作>
 図16は、イベント制限部10の動作を示すフローチャートである。以下、図16を用いてこの動作を説明する。
<Operation>
FIG. 16 is a flowchart showing the operation of the event limiting unit 10. Hereinafter, this operation will be described with reference to FIG.
 まずステップS41にて、イベント制限部10は出力フラグを無効に設定する。その後、処理がステップS42に進む。 First, in step S41, the event restriction unit 10 sets the output flag to invalid. After that, the process proceeds to step S42.
 ステップS42にて、イベント制限部10は、実行トレース収集部1で収集された実行トレース6からイベントを取得する。その後、処理がステップS43に進む。 In step S42, the event limiting unit 10 acquires an event from the execution trace 6 collected by the execution trace collecting unit 1. After that, the process proceeds to step S43.
 ステップS43にて、イベント制限部10は、出力フラグが有効に設定されているか否かを判定する。出力フラグが有効に設定されていると判定された場合には処理がステップS47に進み、出力フラグが無効に設定されていると判定された場合には処理がステップS44に進む。 In step S43, the event restriction unit 10 determines whether or not the output flag is effectively set. If it is determined that the output flag is set to be valid, the process proceeds to step S47, and if it is determined that the output flag is set to be invalid, the process proceeds to step S44.
 ステップS44にて、イベント制限部10は、ステップS42で取得されたイベントが開始イベントと一致するか否かを判定する。一致すると判定された場合には処理がステップS45に進み、一致しないと判定された場合には処理がステップS50に進む。 In step S44, the event restriction unit 10 determines whether or not the event acquired in step S42 matches the start event. If it is determined that they match, the process proceeds to step S45, and if it is determined that they do not match, the process proceeds to step S50.
 ステップS45にて、イベント制限部10は、出力フラグを有効に設定する。その後、処理がステップS46に進む。 In step S45, the event restriction unit 10 effectively sets the output flag. After that, the process proceeds to step S46.
 ステップS46にて、イベント制限部10は、新規の実行トレース6を作成する。その後、処理がステップS47に進む。 In step S46, the event restriction unit 10 creates a new execution trace 6. After that, the process proceeds to step S47.
 ステップS47にて、イベント制限部10は、作成している実行トレース6に、ステップS42で取得されたイベントを含める。その後、処理がステップS48に進む。 In step S47, the event restriction unit 10 includes the event acquired in step S42 in the created execution trace 6. After that, the process proceeds to step S48.
 ステップS48にて、イベント制限部10は、ステップS42で取得されたイベントが終了イベントと一致するか否かを判定する。一致すると判定された場合には処理がステップS49に進み、一致しないと判定された場合には処理がステップS50に進む。 In step S48, the event restriction unit 10 determines whether or not the event acquired in step S42 matches the end event. If it is determined that they match, the process proceeds to step S49, and if it is determined that they do not match, the process proceeds to step S50.
 ステップS49にて、イベント制限部10は、出力フラグを無効に設定する。その後、処理がステップS50に進む。 In step S49, the event restriction unit 10 sets the output flag to invalid. After that, the process proceeds to step S50.
 ステップS50にて、イベント制限部10は、実行トレース収集部1で収集された実行トレース6に未処理のイベントが存在するか否かを判定する。存在すると判定された場合には処理がステップS42に戻り、当該ステップS42にて、イベント制限部10は、実行トレース収集部1で収集された実行トレース6から未処理のイベントを取得する。存在しないと判定された場合には図16の動作が終了する。 In step S50, the event limiting unit 10 determines whether or not there is an unprocessed event in the execution trace 6 collected by the execution trace collecting unit 1. If it is determined that the event exists, the process returns to step S42, and in step S42, the event limiting unit 10 acquires an unprocessed event from the execution trace 6 collected by the execution trace collecting unit 1. If it is determined that it does not exist, the operation of FIG. 16 ends.
 <実施の形態3のまとめ>
 以上のような本実施の形態3に係る影響分析装置によれば、実行トレース蓄積部2に蓄積される実行トレース6を、予め指定された開始イベントと予め指定された終了イベントとを有する実行トレース6に制限する。このような構成によれば、イベント系列が所望のイベント系列と異なる、実行トレース6ひいては代表実行トレース7の処理を抑制することができる。このため、影響分析装置の処理効率化、及びユーザの作業効率化を高めることができる。
<Summary of Embodiment 3>
According to the impact analyzer according to the third embodiment as described above, the execution trace 6 accumulated in the execution trace storage unit 2 is an execution trace having a predetermined start event and a predetermined end event. Limit to 6. According to such a configuration, it is possible to suppress the processing of the execution trace 6 and the representative execution trace 7 in which the event sequence is different from the desired event sequence. Therefore, it is possible to improve the processing efficiency of the impact analysis device and the work efficiency of the user.
 <実施の形態4>
 実施の形態3では、関数遷移のイベント系列でのみ、実行トレース6ひいては代表実行トレース7を分類しており、状態などの変数の違いによって、実行トレース6ひいては代表実行トレース7を分類していない。実施の形態3において、実行トレース収集部1で収集される実行トレース6が変数を含むと、変数の離散値に対して、イベントの種類が細分化される。これにより、ある2つのイベントの内容が実質的に同じであっても、それらイベント内の変数が異なることによって、それらイベントは互いに異なるものとして処理されることがある。その結果、実行トレース6ひいては代表実行トレース7の数が不要に増加する可能性がある。このことに鑑みて、以下の説明で明らかとなるように、本発明の実施の形態4に係る影響分析装置では、変数に関して実行トレース6ひいては代表実行トレース7の処理を抑制することが可能となっている。
<Embodiment 4>
In the third embodiment, the execution trace 6 and the representative execution trace 7 are classified only by the event series of the function transition, and the execution trace 6 and the representative execution trace 7 are not classified due to the difference in variables such as the state. In the third embodiment, when the execution trace 6 collected by the execution trace collection unit 1 includes a variable, the types of events are subdivided with respect to the discrete values of the variables. As a result, even if the contents of two events are substantially the same, the events may be treated as different from each other due to the different variables in the events. As a result, the number of execution traces 6 and thus the representative execution traces 7 may increase unnecessarily. In view of this, as will be clarified in the following description, the impact analyzer according to the fourth embodiment of the present invention can suppress the processing of the execution trace 6 and thus the representative execution trace 7 with respect to the variables. ing.
 図17は、本実施の形態4に係る影響分析装置の構成を示すブロック図である。以下、本実施の形態4に係る構成要素のうち、上述の構成要素と同じまたは類似する構成要素については同じまたは類似する参照符号を付し、異なる構成要素について主に説明する。 FIG. 17 is a block diagram showing the configuration of the impact analysis device according to the fourth embodiment. Hereinafter, among the components according to the fourth embodiment, the same or similar components as those described above will be designated by the same or similar reference numerals, and different components will be mainly described.
 図17に示す影響分析装置は、実施の形態3に係る影響分析装置の構成(図13)に、変換部であるイベント変換部12が追加された構成と同様である。 The impact analysis device shown in FIG. 17 is the same as the configuration in which the event conversion unit 12 which is a conversion unit is added to the configuration (FIG. 13) of the impact analysis device according to the third embodiment.
 イベント変換部12の入力は実行トレース収集部1の出力と接続される。イベント制限部10の入力はイベント変換部12の出力と接続される。実行トレース蓄積部2の入力はイベント制限部10の出力と接続される。代表実行トレース算出部3の入力は、実行トレース蓄積部2の出力と接続される。代表実行トレース蓄積部4の入力は、代表実行トレース算出部3の出力と接続される。実行トレース外れ値抽出部8の入力は、実行トレース蓄積部2の出力、及び、代表実行トレース蓄積部4の出力と接続される。表示部5の入力は、代表実行トレース蓄積部4の出力、及び、実行トレース外れ値抽出部8の出力と接続される。 The input of the event conversion unit 12 is connected to the output of the execution trace collection unit 1. The input of the event limiting unit 10 is connected to the output of the event conversion unit 12. The input of the execution trace storage unit 2 is connected to the output of the event restriction unit 10. The input of the representative execution trace calculation unit 3 is connected to the output of the execution trace storage unit 2. The input of the representative execution trace storage unit 4 is connected to the output of the representative execution trace calculation unit 3. The input of the execution trace outlier extraction unit 8 is connected to the output of the execution trace storage unit 2 and the output of the representative execution trace storage unit 4. The input of the display unit 5 is connected to the output of the representative execution trace storage unit 4 and the output of the execution trace outlier extraction unit 8.
 本実施の形態4では、実行トレース6は変数を含んでいる。そして、実行トレース収集部1で収集された実行トレース6の変数が、予め指定された変数を含む場合、イベント変換部12は、予め指定された変数が取り得る離散値の種類を減らす写像を用いて、当該実行トレース6の変数を変換する。一方、実行トレース収集部1で収集された実行トレース6の変数が、予め指定された変数を含まない場合、イベント変換部12は、当該実行トレース6をそのまま出力する。 In the fourth embodiment, the execution trace 6 includes a variable. Then, when the variables of the execution trace 6 collected by the execution trace collection unit 1 include the variables specified in advance, the event conversion unit 12 uses a mapping that reduces the types of discrete values that the predetermined variables can take. Then, the variable of the execution trace 6 is converted. On the other hand, when the variables of the execution trace 6 collected by the execution trace collection unit 1 do not include the variables specified in advance, the event conversion unit 12 outputs the execution trace 6 as it is.
 図18は、イベント変換部12で用いる写像の規則の例を示す図である。図18では、変数xを0,1,2のいずれかに写像する規則として、それぞれx<0、0≦x<15、15≦xの変換条件が規定されている。また、変数yを0,1のいずれかに写像する規則として、それぞれy<5、5≦yの変換条件が規定されている。 FIG. 18 is a diagram showing an example of mapping rules used in the event conversion unit 12. In FIG. 18, conversion conditions of x <0, 0 ≦ x <15, and 15 ≦ x are defined as rules for mapping the variable x to any of 0, 1, and 2, respectively. Further, as a rule for mapping the variable y to any of 0 and 1, conversion conditions of y <5, 5 ≦ y are defined, respectively.
 図19は、イベント変換部12の出力例を示す図である。図19には、入力イベント系列として、funcA関数呼び出し後にx=7となり、funcB関数呼び出し後にy=10となり、funcC関数呼び出し後にy=-1となり、funcC関数完了後にx=30となるイベント系列が示されている。イベント変換部12が、図18の規則を用いて図19の入力イベント系列を変換すると、図19の出力イベント系列が得られる。すなわち、funcA関数呼び出し後にx=1となり、funcB関数呼び出し後にy=1となり、funcC関数呼び出し後にy=0となり、funcC関数完了後にx=2となるイベント系列が得られる。 FIG. 19 is a diagram showing an output example of the event conversion unit 12. In FIG. 19, as an input event sequence, x = 7 after calling the funcA function, y = 10 after calling the funcB function, y = -1 after calling the funcC function, and x = 30 after the funcC function is completed. It is shown. When the event conversion unit 12 converts the input event sequence of FIG. 19 using the rule of FIG. 18, the output event sequence of FIG. 19 is obtained. That is, an event sequence is obtained in which x = 1 after calling the funcA function, y = 1 after calling the funcB function, y = 0 after calling the funcC function, and x = 2 after the funcC function is completed.
 <動作>
 図20は、イベント変換部12の動作を示すフローチャートである。以下、図20を用いてこの動作を説明する。
<Operation>
FIG. 20 is a flowchart showing the operation of the event conversion unit 12. Hereinafter, this operation will be described with reference to FIG.
 まずステップS61にて、イベント変換部12は、実行トレース収集部1で収集された実行トレース6からイベントを取得する。その後、処理がステップS62に進む。 First, in step S61, the event conversion unit 12 acquires an event from the execution trace 6 collected by the execution trace collection unit 1. After that, the process proceeds to step S62.
 ステップS62にて、イベント変換部12は、ステップS61で取得されたイベント内の変数が、図18のような写像の規則で指定された変数と一致するか否かを判定する。一致すると判定された場合には処理がステップS63に進み、一致しないと判定された場合には処理がステップS64に進む。 In step S62, the event conversion unit 12 determines whether or not the variable in the event acquired in step S61 matches the variable specified by the mapping rule as shown in FIG. If it is determined that they match, the process proceeds to step S63, and if it is determined that they do not match, the process proceeds to step S64.
 ステップS63にて、イベント変換部12は、ステップS61で取得されたイベント内の変数の値を、写像の規則に従って変換し、変換後の値に書き換えて出力する。その後、処理がステップS65に進む。 In step S63, the event conversion unit 12 converts the value of the variable in the event acquired in step S61 according to the mapping rule, rewrites it to the converted value, and outputs it. After that, the process proceeds to step S65.
 ステップS64にて、イベント変換部12は、ステップS61で取得されたイベントをそのまま出力する。その後、処理がステップS65に進む。 In step S64, the event conversion unit 12 outputs the event acquired in step S61 as it is. After that, the process proceeds to step S65.
 ステップS65にて、イベント変換部12は、実行トレース収集部1で収集された実行トレース6に未処理のイベントが存在するか否かを判定する。存在すると判定された場合には処理がステップS61に戻り、当該ステップS61にて、イベント変換部12は、実行トレース収集部1で収集された実行トレース6から未処理のイベントを取得する。存在しないと判定された場合には図20の動作が終了する。 In step S65, the event conversion unit 12 determines whether or not there is an unprocessed event in the execution trace 6 collected by the execution trace collection unit 1. If it is determined that the event exists, the process returns to step S61, and in step S61, the event conversion unit 12 acquires an unprocessed event from the execution trace 6 collected by the execution trace collection unit 1. If it is determined that it does not exist, the operation of FIG. 20 ends.
 <実施の形態4のまとめ>
 以上のような本実施の形態4に係る影響分析装置によれば、変数の種類を減らす写像を用いて、実行トレース収集部1で収集された実行トレース6の変数を変換する。このような構成によれば、関数遷移だけでなく、変数の変換条件を考慮した性能影響の比較及び原因箇所の可視化ができる。この際、変数の種類を減らすことによって実行トレース6ひいては代表実行トレース7の数を抑制することができるため、影響分析装置の処理効率化、及びユーザの作業効率化を高めることができる。
<Summary of Embodiment 4>
According to the impact analyzer according to the fourth embodiment as described above, the variables of the execution trace 6 collected by the execution trace collection unit 1 are converted by using the mapping that reduces the types of variables. According to such a configuration, not only the function transition but also the performance influence considering the conversion condition of the variable can be compared and the cause can be visualized. At this time, since the number of execution traces 6 and thus the number of representative execution traces 7 can be suppressed by reducing the types of variables, it is possible to improve the processing efficiency of the impact analysis device and the work efficiency of the user.
 <その他について>
 実行トレース収集部1、代表実行トレース算出部3、実行トレース外れ値抽出部8、イベント制限部10、及び、イベント変換部12は、例えば影響分析装置に対応するコンピュータの図示しないCPU(Central Processing Unit)などが、影響分析装置の図示しない半導体メモリなどの記憶装置に記憶されたプログラムを実行することにより、当該CPUの機能として実現される。
<About others>
The execution trace collection unit 1, the representative execution trace calculation unit 3, the execution trace deviation value extraction unit 8, the event restriction unit 10, and the event conversion unit 12 are, for example, CPUs (Central Processing Units) (not shown) of a computer corresponding to the impact analyzer. ) Etc. are realized as the functions of the CPU by executing a program stored in a storage device such as a semiconductor memory (not shown) of the impact analyzer.
 なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略したりすることが可能である。 In the present invention, each embodiment can be freely combined, and each embodiment can be appropriately modified or omitted within the scope of the invention.
 本発明は詳細に説明されたが、上記した説明は、すべての態様において、例示であって、本発明がそれに限定されるものではない。例示されていない無数の変形例が、本発明の範囲から外れることなく想定され得るものと解される。 Although the present invention has been described in detail, the above description is exemplary in all embodiments and the present invention is not limited thereto. It is understood that innumerable variations not illustrated can be assumed without departing from the scope of the present invention.
 1 実行トレース収集部、2 実行トレース蓄積部、3 代表実行トレース算出部、4 代表実行トレース蓄積部、5 表示部、6 実行トレース、7 代表実行トレース、8 実行トレース外れ値抽出部、10 イベント制限部、12 イベント変換部。 1 Execution trace collection unit, 2 Execution trace storage unit, 3 Representative execution trace calculation unit, 4 Representative execution trace storage unit, 5 Display unit, 6 Execution trace, 7 Representative execution trace, 8 Execution trace outlier extraction unit, 10 Event restriction Department, 12 Event conversion department.

Claims (7)

  1.  ソフトウェアにおける関数の入口イベント及び出口イベントを含む複数のイベントと、前記複数のイベントの時刻とを含む複数の実行トレースを、異なる複数の条件下でそれぞれ収集する実行トレース収集部と、
     前記実行トレース収集部で収集された前記複数の実行トレースを蓄積する実行トレース蓄積部と、
     前記実行トレース蓄積部に蓄積された前記複数の実行トレースに基づいて、前記複数のイベントと、前記複数のイベントのそれぞれの前記時刻の平均及びばらつきとを含む代表実行トレースを算出する代表実行トレース算出部と、
     前記代表実行トレース算出部で算出された前記代表実行トレースを蓄積する代表実行トレース蓄積部と、
     前記代表実行トレース蓄積部に蓄積された前記代表実行トレースを出力する出力部と
    を備える、影響分析装置。
    An execution trace collection unit that collects a plurality of events including an entry event and an exit event of a function in software and a plurality of execution traces including the times of the plurality of events under different plurality of conditions.
    An execution trace storage unit that accumulates the plurality of execution traces collected by the execution trace collection unit, and an execution trace storage unit.
    A representative execution trace calculation that calculates a representative execution trace including the plurality of events and the average and variation of the time of each of the plurality of events based on the plurality of execution traces accumulated in the execution trace storage unit. Department and
    A representative execution trace storage unit that stores the representative execution trace calculated by the representative execution trace calculation unit, and a representative execution trace storage unit.
    An impact analysis apparatus including an output unit that outputs the representative execution trace accumulated in the representative execution trace storage unit.
  2.  請求項1に記載の影響分析装置であって、
     前記代表実行トレース蓄積部に蓄積された前記代表実行トレースに含まれる前記平均を基準とする許容範囲を規定し、前記実行トレース蓄積部に蓄積された前記複数の実行トレースのうち、前記時刻が前記許容範囲外である前記実行トレースを抽出する抽出部をさらに備え、
     前記出力部は、前記抽出部で抽出された前記実行トレースを、抽出に用いた前記代表実行トレースに重畳して表示する、影響分析装置。
    The impact analyzer according to claim 1.
    A permissible range based on the average included in the representative execution trace stored in the representative execution trace storage unit is defined, and among the plurality of execution traces stored in the execution trace storage unit, the time is the time. Further provided with an extraction unit for extracting the execution trace that is out of the permissible range,
    The output unit is an impact analyzer that superimposes and displays the execution trace extracted by the extraction unit on the representative execution trace used for extraction.
  3.  請求項2に記載の影響分析装置であって、
     前記代表実行トレース蓄積部は、
     互いの前記複数のイベントの組み合わせが異なる複数の前記代表実行トレースを蓄積し、
     前記抽出部は、
     前記代表実行トレース蓄積部に蓄積された前記複数の代表実行トレースのうち、前記実行トレース蓄積部に蓄積された前記複数の実行トレースと前記複数のイベントの組み合わせの差が最も小さい前記代表実行トレースを抽出に用いる、影響分析装置。
    The impact analyzer according to claim 2.
    The representative execution trace storage unit is
    Accumulate a plurality of the representative execution traces in which the combination of the plurality of events is different from each other,
    The extraction unit
    Among the plurality of representative execution traces stored in the representative execution trace storage unit, the representative execution trace in which the difference between the combination of the plurality of execution traces stored in the execution trace storage unit and the plurality of events is the smallest is selected. Impact analyzer used for extraction.
  4.  請求項1から請求項3のうちのいずれか1項に記載の影響分析装置であって、
     前記実行トレース蓄積部に蓄積される前記実行トレースを、前記実行トレース収集部で収集された前記実行トレースのうち、予め指定された開始イベントと予め指定された終了イベントとを有する前記実行トレースに制限する制限部をさらに備える、影響分析装置。
    The impact analyzer according to any one of claims 1 to 3.
    The execution traces accumulated in the execution trace storage unit are limited to the execution traces having a predetermined start event and a predetermined end event among the execution traces collected by the execution trace collection unit. An impact analyzer that further comprises a restriction section.
  5.  請求項1から請求項4のうちのいずれか1項に記載の影響分析装置であって、
     前記実行トレースは変数をさらに含み、
     変数の種類を減らす写像を用いて、前記実行トレース収集部で収集された前記実行トレースの前記変数を変換する変換部をさらに備える、影響分析装置。
    The impact analyzer according to any one of claims 1 to 4.
    The execution trace contains more variables
    An impact analyzer further comprising a conversion unit that converts the variable of the execution trace collected by the execution trace collection unit by using a mapping that reduces the types of variables.
  6.  実行トレース収集部が、ソフトウェアにおける関数の入口イベント及び出口イベントを含む複数のイベントと、前記複数のイベントの時刻とを含む複数の実行トレースを、異なる複数の条件下でそれぞれ収集し、
     実行トレース蓄積部が、前記実行トレース収集部で収集された前記複数の実行トレースを蓄積し、
     代表実行トレース算出部が、前記実行トレース蓄積部に蓄積された前記複数の実行トレースに基づいて、前記複数のイベントと、前記複数のイベントのそれぞれの前記時刻の平均及びばらつきとを含む代表実行トレースを算出し、
     代表実行トレース蓄積部が、前記代表実行トレース算出部で算出された前記代表実行トレースを蓄積し、
     出力部が、前記代表実行トレース蓄積部に蓄積された前記代表実行トレースを出力する、影響分析方法。
    The execution trace collection unit collects a plurality of events including the entrance event and the exit event of the function in the software and a plurality of execution traces including the times of the plurality of events under different conditions.
    The execution trace storage unit accumulates the plurality of execution traces collected by the execution trace collection unit, and the execution trace storage unit accumulates the plurality of execution traces.
    Based on the plurality of execution traces accumulated in the execution trace storage unit, the representative execution trace calculation unit includes the plurality of events and the average and variation of the time of each of the plurality of events. Is calculated and
    The representative execution trace accumulating unit accumulates the representative execution trace calculated by the representative execution trace calculation unit, and then accumulates the representative execution trace.
    An impact analysis method in which the output unit outputs the representative execution trace accumulated in the representative execution trace storage unit.
  7.  ソフトウェアにおける関数の入口イベント及び出口イベントを含む複数のイベントと、前記複数のイベントの時刻とを含む複数の実行トレースを、異なる複数の条件下でそれぞれ収集する手段と、
     収集された前記複数の実行トレースを蓄積する手段と、
     蓄積された前記複数の実行トレースに基づいて、前記複数のイベントと、前記複数のイベントのそれぞれの前記時刻の平均及びばらつきとを含む代表実行トレースを算出する手段と、
     算出された前記代表実行トレースを蓄積する手段と、
     蓄積された前記代表実行トレースを出力する手段と、をコンピュータに実行させる、影響分析プログラム。
    A means for collecting a plurality of events including an entrance event and an exit event of a function in software and a plurality of execution traces including the times of the plurality of events under different conditions.
    A means of accumulating the collected execution traces and
    A means for calculating a representative execution trace including the plurality of events and the average and variation of the time of each of the plurality of events based on the accumulated plurality of execution traces.
    Means for accumulating the calculated representative execution trace and
    An impact analysis program that causes a computer to execute a means for outputting the accumulated representative execution trace.
PCT/JP2019/038885 2019-10-02 2019-10-02 Impact analysis device, impact analysis method, and impact analysis program WO2021064887A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021550834A JP7258171B2 (en) 2019-10-02 2019-10-02 Impact analysis device, impact analysis method, and impact analysis program
PCT/JP2019/038885 WO2021064887A1 (en) 2019-10-02 2019-10-02 Impact analysis device, impact analysis method, and impact analysis program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/038885 WO2021064887A1 (en) 2019-10-02 2019-10-02 Impact analysis device, impact analysis method, and impact analysis program

Publications (1)

Publication Number Publication Date
WO2021064887A1 true WO2021064887A1 (en) 2021-04-08

Family

ID=75337077

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/038885 WO2021064887A1 (en) 2019-10-02 2019-10-02 Impact analysis device, impact analysis method, and impact analysis program

Country Status (2)

Country Link
JP (1) JP7258171B2 (en)
WO (1) WO2021064887A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258552A (en) * 2004-03-09 2005-09-22 Nec Corp Event analysis apparatus
JP2019169087A (en) * 2018-03-26 2019-10-03 日本電気株式会社 Information aggregation device, information aggregation method, and program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6192455B2 (en) * 2013-09-17 2017-09-06 三菱電機株式会社 Log data collection device, log data management method, and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258552A (en) * 2004-03-09 2005-09-22 Nec Corp Event analysis apparatus
JP2019169087A (en) * 2018-03-26 2019-10-03 日本電気株式会社 Information aggregation device, information aggregation method, and program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Thinking about business improvement from dynamic test tools", HEARTLAND DATA INC, 5 July 2018 (2018-07-05) *

Also Published As

Publication number Publication date
JPWO2021064887A1 (en) 2021-12-23
JP7258171B2 (en) 2023-04-14

Similar Documents

Publication Publication Date Title
US9367426B2 (en) Call graph simplification/comparison and automatic initial suspects finding of performance degradations
Bhasin et al. Black box testing based on requirement analysis and design specifications
EP3502814B1 (en) Processing loads balancing of control and monitoring functions
US8930447B2 (en) Method, apparatus, and program for usability analysis of web applications
US20090083717A1 (en) Benchmark profiling for distributed systems
JP2011118794A (en) Method, program, and device for estimating batch job processing time
US20080010545A1 (en) Computer system and method for monitoring execution of application program
US20130074059A1 (en) Method for identifying problematic loops in an application and devices thereof
WO2021064887A1 (en) Impact analysis device, impact analysis method, and impact analysis program
JP6995146B2 (en) Performance analysis of adaptive applications
US20190271968A1 (en) Numerical controller
Awad et al. Performance model derivation of operational systems through log analysis
JP2008108154A (en) Management system for operation performance information
Kukolj et al. Selection and prioritization of test cases by combining white-box and black-box testing methods
JPWO2017169949A1 (en) Log analysis apparatus, log analysis method, and program
JP5217870B2 (en) Program performance measuring apparatus, method, program, program recording medium
JP2004264914A (en) Apparatus for measuring and analyzing system performance
Pfaltz Using concept lattices to uncover causal dependencies in software
CN114546769A (en) Task monitoring method and device, electronic equipment and readable storage medium
CN114564507A (en) Data processing method and device, electronic equipment and computer readable storage medium
CN113469284A (en) Data analysis method, device and storage medium
US11165657B2 (en) Analysis device and analysis method
WO2021070512A1 (en) Failure tree generation device and method therefor
Ikiz et al. Efficient incremental optimal chain partition of distributed program traces
WO2019163915A1 (en) Project analysis device and program

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19947554

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021550834

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19947554

Country of ref document: EP

Kind code of ref document: A1