Profiling

/ˈproʊfaɪlɪŋ/

noun … “Measuring code to find performance bottlenecks.”

Profiling is the process of analyzing a program’s execution to collect data about its runtime behavior, resource usage, and performance characteristics. It is used to identify bottlenecks, inefficient algorithms, memory leaks, or excessive I/O operations. Profiling can be applied to CPU-bound, memory-bound, or I/O-bound code and is essential for optimization in software development.

Optimization

/ˌɒptɪmaɪˈzeɪʃən/

noun … “Making code run faster, smaller, or more efficient.”

Optimization in computing is the process of modifying software or systems to improve performance, resource utilization, or responsiveness while maintaining correctness. It applies to multiple layers of computation, including algorithms, source code, memory management, compilation, and execution. The goal of Optimization is to reduce time complexity, space usage, or energy consumption while preserving the intended behavior of the program.