--- layout: post status: publish published: true title: Profiling a Python Script author: Julien Lengrand-Lambert author_login: jlengrand author_email: julien@lengrand.fr author_url: http://www.lengrand.fr wordpress_id: 546 wordpress_url: http://www.lengrand.fr/?p=546 date: 2012-02-29 11:43:08.000000000 +01:00 categories: - Python tags: - project euler - profile - profiler - module - stack overflow comments: [] --- 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 :
[python] python -m cProfile script.py [/python]
[python] import cProfile cProfile.run('function()') # in your __main__ [/python] 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. [python] import timeit t1 = timeit.Timer("function()", "from __main__ import function") print t1.timeit(1) [/python] 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]