Profiling a Python Script

Here are some simple ways to profile Python scripts.I heavily use this to check my Project Euler solutions.

SOLUTION 1:

The main common option would be to use the profile (or cprofile) module.There are two different ways of using it :
  • As a module, by directly running
```python -m cProfile script.py```
  • In your code, by importing the utilities
``` import cProfile cProfile.run('function()') # in your __main__ ``` Bonus : You can use several options for sorting results using the -s switch (cumulative/name/time/file sorting are available).

SOLUTION 2:

If you want to avoid using a command line, or you don't have the profile module installed; here os another possibility. There is also the timeit module available. ``` import timeit t1 = timeit.Timer("function()", "from __main__ import function") print t1.timeit(1) ``` I use this option on Eclipse because I didn't want to install the profile module on Windows. This is however less clear, and way less detailed while still useful :). Choose you profiler option and get on Project Euler ! [Stack Overflow]