Index: management.py
===================================================================
--- management.py	(revision 4669)
+++ management.py	(working copy)
@@ -7,6 +7,17 @@
 from optparse import OptionParser
 from django.utils import termcolors
 
+PROF_PATH = '/tmp'
+
+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(PROF_PATH, profname)
+        prof = hotshot.Profile(profname)
+        return prof.runcall(inner_handler, environ, start_response)
+    return handler
+
 # For Python 2.3
 if not hasattr(__builtins__, 'set'):
     from sets import Set as set
@@ -1188,7 +1199,7 @@
         try:
             import django
             path = admin_media_dir or django.__path__[0] + '/contrib/admin/media'
-            handler = AdminMediaHandler(WSGIHandler(), path)
+            handler = make_profiler_handler(AdminMediaHandler(WSGIHandler(), path))
             run(addr, int(port), handler)
         except WSGIServerException, e:
             # Use helpful error messages instead of ugly tracebacks.
