equal
deleted
inserted
replaced
|
1 import cProfile |
|
2 import itertools |
|
3 from pyramid.view import view_config |
|
4 |
|
5 |
|
6 @view_config(route_name='profile_ping') |
|
7 def ping(request): |
|
8 request.response.text = u'pong' |
|
9 return request.response |
|
10 |
|
11 |
|
12 @view_config(route_name='profile_cnx') |
|
13 def cnx(request): |
|
14 request.cw_cnx |
|
15 request.response.text = u'pong' |
|
16 return request.response |
|
17 |
|
18 |
|
19 def wsgi_profile(app, filename='program.prof', dump_every=50): |
|
20 profile = cProfile.Profile() |
|
21 |
|
22 counter = itertools.count(1) |
|
23 |
|
24 def application(environ, start_response): |
|
25 profile.enable() |
|
26 try: |
|
27 return app(environ, start_response) |
|
28 finally: |
|
29 profile.disable() |
|
30 if not counter.next() % dump_every: |
|
31 print "Dump profile stats to %s" % filename |
|
32 profile.create_stats() |
|
33 profile.dump_stats(filename) |
|
34 |
|
35 return application |