Python Performance Profiling

What is Profiling? Profiling Definition? Measuring the execution time. Insight of run time performance of a given piece of code. Frequently used to optimize execution time. Used to analyze other characteristics such as memory consumption. Why Profile? You can use a profiler to answer questions like these: Why is this program slow? Why does it slow my computer to a crawl? What is actually happening when this code executes?