python - 是否有生产安全的方法来衡量在使用 Python 的生产中花费的时间?

标签 python django profiling

我希望能够检测 Python 应用程序,以便我知道:

  • 页面生成时间。
  • 在外部请求(mysql、api 调用)上花费的时间百分比。
  • mysql 查询的数量,MySQL 查询是什么。

我想要这些来自生产环境的数据(而不是离线分析)——因为在不同地方花费的时间在负载下会有所不同。

在 PHP 中,我可以使用 XHProf 或 instrumentation-for-php 来做到这一点。在 Ruby on Rails/.NET/Java 中,我可以使用 New Relic 做到这一点。

Python或者django有没有推荐的包?

最佳答案

是的,这是完全可能的。例如。在 URL 中使用一些神奇的开关,比如“?profile-me”,它会触发 Django 中间件中的分析。

互联网上有许多片段,例如:http://djangosnippets.org/snippets/70/或像这样的模块:http://code.google.com/p/django-profiling/ - 但我没有使用过它们中的任何一个,所以我不能推荐任何东西。

无论如何,他们采用的方法与我所做的类似 - 即使用 Python Hotshot包装 View 的中间件中的分析器模块。对于 MySQL 部分,您可以只使用 connection.queries形成 Django。

Hotshot 的好处在于它的输出可以使用 Kcachegrind 浏览,如下所示:http://www.rkblog.rk.edu.pl/w/p/django-profiling-hotshot-and-kcachegrind/

关于python - 是否有生产安全的方法来衡量在使用 Python 的生产中花费的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4157605/

相关文章:

django - 如何以编程方式在另一个 View 中调用 Django Rest Framework View ?

iPhone 4 配置文件功耗(带仪器)

python - 如何从特定格式的 DataFrame 创建稀疏矩阵

python - 无效的 block 标记 : 'set'

python - 为什么有些 Python 变量保持全局,而有些需要定义为全局

python - 无法导入 flup.server.fcgi

linux - 如何从分析器中获取每个样本的完整堆栈转储以用于火焰图?

c - 如何运行此 DTrace 脚本来分析我的应用程序?

python - tensorflow 中的线性模型

python - 为什么 Python 会复制维度长度相同的 NumPy 数组?