我从来没有在Python中完成代码覆盖,但我正在寻找类似GCC
的gcov
,它告诉我每行执行多少次,或者Apple的鲨鱼给出了每个函数使用多长时间的层次分解。分析活Django服务器?
我的问题是,我有一个正在经历高负载的活服务器,并且我无法从日志中知道是什么导致它。我想附加一些东西给我的Django实例来监视哪些行是最热的和/或哪些函数花费的时间最长。
这是类似的,但不完全是代码覆盖率。我想介绍它到一个实时运行的服务器,最好不要修改太多。
想法?
我从来没有在Python中完成代码覆盖,但我正在寻找类似GCC
的gcov
,它告诉我每行执行多少次,或者Apple的鲨鱼给出了每个函数使用多长时间的层次分解。分析活Django服务器?
我的问题是,我有一个正在经历高负载的活服务器,并且我无法从日志中知道是什么导致它。我想附加一些东西给我的Django实例来监视哪些行是最热的和/或哪些函数花费的时间最长。
这是类似的,但不完全是代码覆盖率。我想介绍它到一个实时运行的服务器,最好不要修改太多。
想法?
CPROFILE + RunSnakeRun: http://www.vrplumber.com/programming/runsnakerun/
我用这个模式:一个监控线程写入踪迹日志文件每0.3秒。几个小时后,我可以看到解释者花费最多的时间。它不会减慢我的服务器:
Django-live-profiler是一个下拉Django的应用程序,让您使用statprof配置文件运行的应用程序和可视化的结果。
如何将cProfile附加到正在运行的Django进程? – Joe
您无法将分析器附加到正在运行的进程。你需要从'cProfile.py'启动django进程:http://docs.python.org/library/profile.html#instant-user-s-manual – catavaran
是的,答案是摆弄我的启动脚本,并把这在英寸不是非常干扰。谢谢! – Joe