Performance Analysis is the process of studying or evaluating the performance of a particular scenario in comparison of the objective which was to be achieved. Performance analysis can be do in finance on the basis of ROI, profits etc. In HR, performance analysis, can help to review an employees contribution towards a project or assignment, which he/she was allotted.
The performance analysis step consists of 3 basic steps:
1. Data Collection: It is a process by which data related to performance of a program is collected. They are generally collected in a file, it may be presented to a real user in a real time. The basic data collection techniques are:
a. Profiles: It records the time spent in different parts of the program. This process in very important for highlighting performance problems. They are gathered automatically.
b. Counters: It records frequencies or cumulative number of events. It may require programmer intervention.
c. Event: It records each occurrence of various specified events. It thus produces a large number of data. It can be produced automatically or with programmer intervention.
2. Data Transformation: It is applied often to reduce the volume of data. For example, a profile recording the minutes spent in each sub routine job on each processor might be transformed to determine minutes spent in each subroutine on each processor and the standard deviation from this mean.
3. Data Visualization: Although data reduction techniques can recue the volume of data, it is often necessary to explore raw data. This process can benefit much more from the use of data visualization techniques.
When a particular tool is selected for a particular task, the following issues are considered:
a. Accuracy: Performance data that we get using the sampling technique are less accurate than data we get using counters or timers.
b. Simplicity: The best tools are that collect data automatically without much programmer intervention.
c. Flexibility: A flexible tool can be extended to collect additional information or to provide multiple views of the same data.
d. Intrusiveness: We need to take into account the overheads when analyzing data.
e. Abstraction: A good performance tool allows that data to be judged at a level of abstraction which is suitable for the programming model of parallel programs.