python - 使用 Flask 应用程序时,使用 print 会对性能产生负面影响吗?

标签 python logging heroku flask

我在 Heroku 上部署了一个 Flask 应用程序,因为它相对较小,所以我从来没有费心去设置记录器。我发现通过使用 print 语句,我可以在 Herokus 附加记录器之一上看到我需要的一切。我想知道的是,与我刚刚使用 flask 中的内置记录器相比,这会对性能产生负面影响吗? print 语句是否会给 python 程序增加不必要的开销?

最佳答案

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

但是,另一个问题是并发性:如果您的 Flask 应用程序由单独的客户端运行,则日志与打印的性能影响可能会有所不同,具体取决于日志的设计方式与打印语句的捕获方式。这更难测试,但我猜测您可以创建一个脚本,使用多处理模块与只有一个打印/日志消息的 flask URL 并行运行一团请求,并测量您的测试客户端能够处理多少个请求在给定的时间内完成。

最后的考虑是, flask View /渲染中的处理量可能明显大于记录或打印所需的时间。例如,如果没有任何打印的渲染需要 100 毫秒,而打印则需要 110 毫秒,那么日志的速度是打印速度的两倍(即 105 毫秒)又有什么关系呢?只要您在使用打印/日志时保持节俭,就没有多大关系。这始终适用于任何应用程序,而不仅仅是网络。

关于python - 使用 Flask 应用程序时,使用 print 会对性能产生负面影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26081637/

相关文章:

python - 在 sql.executemany(... '(' 附近的语法错误

logging - Notepad++ 交替行/背景颜色

java - 在 Ubuntu 上记录 Tomcat6

python - 在 seaborn 热图中自动调整字体大小

python - setup.py 从 bdist 中排除一些 python 文件

c++ - 临时对象创建

hibernate - 如何使用环境变量配置 Hibernate

java - 无法解决heroku中项目的依赖关系

git - "git <refspec> does not look like a ref"尝试将本地分支链接到远程 Heroku 应用程序

python - 有没有一种方法或函数可以从程序中隐藏selenium的输出?