mirror of
https://github.com/jlengrand/jlengrand.github.io.git
synced 2026-03-10 08:31:22 +00:00
Imports all the Wordpress history into jekyll.
It kinda seems to work!
This commit is contained in:
64
_posts/2012-02-29-profiling-a-python-script.markdown
Normal file
64
_posts/2012-02-29-profiling-a-python-script.markdown
Normal file
@@ -0,0 +1,64 @@
|
||||
---
|
||||
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 <strong><a title="PE solutions" href="https://github.com/jlengrand/project_euler" target="_blank">Project Euler solutions</a></strong>.
|
||||
<h1></h1>
|
||||
<h1><strong>SOLUTION 1:</strong></h1>
|
||||
The main common option would be to use the <a title="profile" href="http://docs.python.org/library/profile.html?highlight=profile#cProfile" target="_blank"><strong>profile</strong> </a>(or <strong><a title="cprofile" href="http://docs.python.org/library/profile.html?highlight=profile#cProfile" target="_blank">cprofile</a></strong>) module.There are two different ways of using it :
|
||||
<ul>
|
||||
<li>As a module, by directly running</li>
|
||||
</ul>
|
||||
<div>[python]
|
||||
python -m cProfile script.py
|
||||
[/python]
|
||||
|
||||
</div>
|
||||
<div></div>
|
||||
<div>
|
||||
<ul>
|
||||
<li>In your code, by importing the utilities</li>
|
||||
</ul>
|
||||
<div>[python]
|
||||
import cProfile
|
||||
cProfile.run('function()') # in your __main__
|
||||
[/python]
|
||||
|
||||
<em>Bonus : You can use several options for sorting results using the -s switch (cumulative/name/time/file sorting are available).</em>
|
||||
<h1><strong>SOLUTION 2:</strong></h1>
|
||||
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 <strong><a title="timeit module" href="http://docs.python.org/library/timeit.html" target="_blank">timeit </a></strong>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 <a title="PE" href="http://projecteuler.net/" target="_blank"><strong>Project Euler</strong> </a>!
|
||||
|
||||
[<a title="SO" href="http://stackoverflow.com/questions/582336/how-can-you-profile-a-python-script" target="_blank">Stack Overflow</a>]
|
||||
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user