使用烧瓶应用时,使用印刷会对性能产生负面影响吗?

时间:2014-09-28 04:32:55

标签: python logging heroku flask

我已经在heroku上部署了一个烧瓶应用程序,因为它相对较小,我从不打扰设置记录器。我发现通过使用print语句,我可以在herokus附加记录器上看到我需要的一切。我想知道的是,如果我刚刚在烧瓶中使用内置记录器,那会对性能产生负面影响吗? print语句是否为python程序增加了不必要的开销?

1 个答案:

答案 0 :(得分:2)

两个输出(打印和记录器)最终都在一个文件中,唯一的区别是记录器通常允许对输出进行一些过滤,并尝试在过滤掉消息时尽可能少地增加开销。这意味着没有测试就不能说,IE比较两者。您应该能够使用timeit模块来计算执行打印数千或数百万条消息的for循环所需的时间。

然而,另一个问题是并发性:如果您的烧瓶应用程序由不同的客户端运行,则日志与打印的性能影响可能会有所不同,具体取决于日志的设计方式与打印语句的捕获情况。这很难测试,但我的猜测是你可以创建一个脚本,它使用多处理模块并行地向一个只有一条打印/日志消息的烧瓶URL运行一大堆请求,并测量你的测试客户端能够提供多少请求在给定的时间内制作。

最后的考虑因素是烧瓶视图/渲染中的处理量可能远远大于记录或打印所需的时间。例如,如果没有任何打印的渲染需要100毫秒,而打印需要110毫秒,那么日志的速度是打印速度的两倍(IE 105毫秒)?只要您在使用打印/日志时保持节俭,就没那么重要了。这总是适用于任何应用程序,而不仅仅是网络。