【发布时间】:2016-06-07 16:30:19
【问题描述】:
当开发 Python Web 应用程序 (Flask/uWSGI) 并在我的本地机器上运行它时,*.pyc 文件由解释器生成。我的理解是这些编译后的文件可以让事情加载更快,但不一定运行更快。
当我将同一个应用程序部署到生产环境时,它在一个对本地文件系统没有写入权限的用户帐户下运行。没有*.pyc 文件提交到源代码控制,并且在部署期间不努力生成它们。即使 Python 想在运行时写一个.pyc 文件,它也做不到。
最近我开始怀疑这是否对应用程序的性能有任何切实的影响,无论是在流程开始后的第一次浏览量方面,还是在其整个生命周期内始终如一。
我应该将python -m compileall 作为我的部署脚本的一部分吗?
【问题讨论】:
-
在我看来,部署它完全是愚蠢的,但你可以做到,因为 Python 必须转换为
bytecode才能被解释,保留.pyc文件会有所帮助加快执行速度,因为你不必重新编译,在这里阅读这个也许会有所帮助*.com/questions/11368304/… -
另一方面,如果你有一个长时间运行的应用程序,比如 Flask,它只会减少启动时间。 Flask 在运行时很少会加载模块。
标签: python deployment pyc