| 1 | import cProfile, time, os
|
|---|
| 2 | from django.core.handlers.modpython import ModPythonHandler
|
|---|
| 3 |
|
|---|
| 4 | PROFILE_DATA_DIR = "/var/log/cmsprofile"
|
|---|
| 5 |
|
|---|
| 6 | def handler(req):
|
|---|
| 7 | '''
|
|---|
| 8 | Handler that uses cProfile to store profile data.
|
|---|
| 9 |
|
|---|
| 10 | Adapted from django/core/handlers/profiler-hotshot.py
|
|---|
| 11 | '''
|
|---|
| 12 | profname = "%s.%.3f.prof" % (req.uri.strip("/").replace('/', '.'), time.time())
|
|---|
| 13 | profname = os.path.join(PROFILE_DATA_DIR, profname)
|
|---|
| 14 | prof = cProfile.Profile()
|
|---|
| 15 | results = prof.runcall(ModPythonHandler(), req)
|
|---|
| 16 | prof.dump_stats(profname)
|
|---|
| 17 | return results
|
|---|