Intall
--------
In your settings.py, set it in MIDDLEWARE_CLASSES. Default all the profile files will be save in ./profile folder(if there is no this directory, it'll automatically create one), and you can set a PROFILE_DATA_DIR option in settings.py, so that the profile files can be saved in this folder.
How does it works
-------------------
Record every request in a profile file. As you can see in the code:
profname = "%s.prof" % (request.path.strip("/").replace('/', '.'))
so if you request an url multi-times, only the last request will be saved, because previous profile files will be overriden. And you can find a commentted line, it'll save each request in different file according the time, so if you like that you can change the code.
# profname = "%s.%.3f.prof" % (request.path.strip("/").replace('/', '.'), time.time())
and if you want to see the output, you can run below code, but you should change the filename value:
import hotshot, hotshot.stats
stats = hotshot.stats.load(filename)
#stats.strip_dirs()
#stats.sort_stats('time', 'calls')
stats.print_stats()