在Python中测量性能

时间:2011-06-21 17:50:21

标签: python performance web-applications instrumentation measurement

我正在用Python编写一个Web应用程序,我还没有决定是否要使用Flask,web.py或其他东西,我希望能够在实时应用程序上进行配置文件。

关于如何实施仪器来进行性能测量,似乎很少有信息,而不是在任何地方做很多打印datetime.now()。

对Python应用程序进行检测的最佳方法是什么,以便进行良好的测量。我想我正在寻找类似于Stackoverflow团队mvc-mini-profiler的东西。

4 个答案:

答案 0 :(得分:6)

您可以简单地运行Python附带的cProfile工具:

python -m cProfile script.py

当然,您必须创建script.py文件,该文件将执行您要测试的代码部分。如果你有一些单元测试,你也可以使用它。

或者你使用:

import cProfile 
cProfile.run('foo()')

foo入口点对其进行分析。

答案 1 :(得分:4)

Amir Salihefendic写了一篇简短的(150 LOC)RequestProfiler,在这篇博文中有描述:

我没有尝试过,但由于它是一个WSGI中间件,它应该是可插拔的。

答案 2 :(得分:0)

您可以使用通用的Web应用程序性能工具,例如httpperf。这适用于使用外部客户端并适用于任何框架,因为它适用于标准接口(HTTP)。因此,它测试完整的堆栈性能。

答案 3 :(得分:0)

使用New Relic的免费监控系统。您只需在服务器上安装代理并指向烧瓶 init .py文件。使用正确的代理设置运行应用程序后,您将开始查看应用程序指标,请参阅New Relic的名为APM的在线仪表板。 默认情况下,它会显示应用程序吞吐量(QPS / RPM),应用响应时间,最高事务,错误率,错误堆栈跟踪(如果有的话)(例如500错误),外部服务调用等图表。此外,您还可以监控你的系统统计数据。