Embedded Systems -Program-Level-Performance-Analysis.pptx
1.
Program Level
Performance Analysis
Programperformance analysis is crucial for understanding how efficiently
a program utilizes system resources. Execution time can vary based on
input data, cache behavior, and instruction-level nuances. By understanding
these elements, developers can optimize code for better performance.
by ARTHI Thenraj
2.
Measuring Program
Performance
Program performancecan be measured using several methods: * CPU
Simulators: Provided by manufacturers to simulate CPU behavior. *
Microprocessor Bus Timers: Timers connected to the microprocessor bus
to measure code segment execution times. * Logic Analyzers: Tools that
monitor the microprocessor bus to record the start and stop times of code
segments.
3.
Elements of ExecutionTime
Program execution time is determined by two primary elements: *
Program Path: The sequence of instructions executed. * Instruction
Timing: Determined by data dependencies, pipeline behavior, and caching
effects. Understanding these elements helps in identifying bottlenecks and
optimizing code for faster execution.
4.
Factors Affecting ProgramExecution
Several factors influence program execution times: * Input Data Values: Different values lead to different execution paths. *
Cache Behavior: Dependent on input values and memory access patterns. * Instruction Level: Floating-point operations and
pipelining effects introduce variations.
5.
Program Paths and
DynamicBehavior
Program paths provide insights into dynamic behavior that are difficult to
obtain otherwise. Unlike program profiles, which aggregate information,
paths capture the sequencing of statements. Examination of program
paths reveals path locality, which can be exploited to improve performance.
6.
Example: Adding Even
Numbers
Considera function to add even numbers: int AddEvenNumbers (int
N) { int sum = 0; /* SI * / for (int j = 1, j < = N ; j +
= 1) { /* S2 * / if ((j % 2) = = 0) { /* S3 * / sum += j }
} /* S4 * / return sum ; } With an argument of 3, the execution
path is SI, S2, SI, S2, S3, SI, S2, SI, S4.
7.
Path Profiling vs.Program
Profiling
Path Profiling captures the order of executed statements, but can be
unwieldy due to its length. Program Profiling captures which statements
execute but not the order, summarized as a table of execution frequencies.
For the example function, the program profile is SI = 4, S2 = 3, S3 = 1, S4 = 1.
8.
Program Performance
Metrics
Key programperformance metrics include: * Average-Case Execution
Time: Used in application programming. * Worst-Case Execution Time:
Critical for deadline satisfaction. * Best-Case Execution Time: Task-level
interactions can sometimes lead to worst-case system behavior.