分析Django应用以找出缓慢的功能。
我刚刚添加了一些中间件来跟踪函数调用,关注此博客:http://agiliq.com/blog/2015/07/profiling-django-middlewares/我发现{posix.write}
的cProfile统计数据输入是最长的之一。
知道那是什么,以及它来自哪里?
其他功能由其名称和包路径引用,因此我不确定{posix.write}
的含义。
日志如下所示:
204051 function calls (197141 primitive calls) in 0.997 seconds
Ordered by: internal time
List reduced from 1204 to 50 due to restriction <50>
ncalls tottime percall cumtime percall filename:lineno(function)
35 0.305 0.009 0.305 0.009 {posix.write}
95 0.206 0.002 0.207 0.002 {method 'execute' of 'psycopg2.extensions.cursor' objects}
73 0.088 0.001 0.088 0.001 {select.select}
898 0.023 0.000 0.047 0.000 /.venv/lib/python2.7/site-packages/django/db/models/base.py:388(__init__)
1642 0.012 0.000 0.371 0.000 /.venv/lib/python2.7/site-packages/django/template/base.py:806(_resolve_lookup)
1 0.010 0.010 0.011 0.011 {_sass.compile_filename}
1 0.009 0.009 0.009 0.009 {psycopg2._psycopg._connect}
34 0.009 0.000 0.009 0.000 {method 'recv' of '_socket.socket' objects}
39 0.007 0.000 0.007 0.000 {posix.read}
9641/6353 0.006 0.000 0.321 0.000 {getattr}
173 0.006 0.000 0.026 0.000 /.venv/lib/python2.7/site-packages/django/core/urlresolvers.py:425(_reverse_with_prefix)
25769 0.006 0.000 0.007 0.000 {isinstance}
修改
据我所知,posix.write是posix的写函数。我需要理解的是,我猜是Django的一部分使用了很多,为什么它显示为300 + ms。
我该如何跟踪此事?
由于