【问题标题】:Profiling on live Django server?在实时 Django 服务器上进行分析?
【发布时间】:2011-11-21 14:02:42
【问题描述】:

我从未在 Python 中完成过代码覆盖,但我正在寻找类似 @​​987654321@ 的 gcov 之类的东西,它告诉我每行执行多少次,或者 Apple 的 Shark,它给出了如何按层次划分每个函数的耗时。

我的问题是我有一个正在承受高负载的实时服务器,我无法从日志中看出是什么原因造成的。我想在我的 Django 实例上附加一些东西来监控哪些行最热和/或哪些函数花费的时间最长。

这类似于但不完全是代码覆盖率。我想把它介绍给一个实时运行的服务器,最好不要做太多修改。

想法?

【问题讨论】:

    标签: python django code-coverage


    【解决方案1】:

    Django-live-profiler 是一个插入式 Django 应用程序,可让您使用 statprof 分析正在运行的应用程序并可视化结果。

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 如何将 cProfile 附加到正在运行的 Django 进程?
      • 您无法将探查器附加到正在运行的进程。你需要从cProfile.py启动django进程:docs.python.org/library/profile.html#instant-user-s-manual
      • 是的,答案是摆弄我的启动脚本并将其放入。不是很侵入。谢谢!
      【解决方案3】:

      我使用这种模式:监视器线程每 0.3 秒将堆栈跟踪写入日志文件。几个小时后,我可以看到口译员花费最多时间的地方。它不会减慢我的服务器:

      Live Profiling of Python Server

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-28
        • 2018-01-24
        • 2011-04-03
        • 2016-06-25
        • 1970-01-01
        相关资源
        最近更新 更多