Index: django/core/management.py
===================================================================
--- django/core/management.py	(revision 2598)
+++ django/core/management.py	(working copy)
@@ -925,6 +925,15 @@
         sys.stderr.write(s.read())
         sys.exit(1)
 
+import hotshot, time, os
+def make_profiler_handler(inner_handler):
+    def handler(environ, start_response):
+        profname = "%s.%.3f.prof" % (environ['PATH_INFO'].strip("/").replace('/', '.'), time.time())
+        profname = os.path.join('/tmp', profname)
+        prof = hotshot.Profile(profname)
+        return prof.runcall(inner_handler, environ, start_response)
+    return handler
+
 def runserver(addr, port):
     "Starts a lightweight Web server for development."
     from django.core.servers.basehttp import run, AdminMediaHandler, WSGIServerException
@@ -942,7 +951,7 @@
         print "Development server is running at http://%s:%s/" % (addr, port)
         print "Quit the server with CONTROL-C (Unix) or CTRL-BREAK (Windows)."
         try:
-            run(addr, int(port), AdminMediaHandler(WSGIHandler()))
+            run(addr, int(port), make_profiler_handler(AdminMediaHandler(WSGIHandler())))
         except WSGIServerException, e:
             # Use helpful error messages instead of ugly tracebacks.
             ERRORS = {
