Doc*_*awk 3 python performance bytecode cpython
我搜索了一段时间,发现了一些合理的说法,即 CPython 的编译允许更快地执行 Python 代码。不过,我想知道是否有人知道任何可以证明加速程度的基准测试。
或者,也许有一种简单的方法可以让我对其进行基准测试。是否有一个可以在运行时给出的Python标志来关闭编译?
cpython运行的所有代码都必须编译为字节码才能运行。这就是解释器的工作方式,您可能无法合理地更改它(如果不编写自己的解释器)。
但是,默认情况下,加载的模块的编译字节码将缓存在.pyc文件中。这意味着下次加载它时不需要再次编译。您可能听说过字节码缓存,因为它可以大大加快以前使用的模块的导入速度。不过,加载模块后它不会改变性能。
您可以使用-B命令行选项或PYTHONDONTWRITEBYTECODE环境变量禁用字节码缓存。如果您想测试速度差异,您可能还需要删除任何现有缓存。在 Python 2 中,编译后的字节码将被写入源文件.pyc旁边的文件中.py。在 Python 3 中,这已更改为使用一个__pycache__文件夹,该文件夹可以保存.pyc来自不同版本的 Python 的多个文件(因此您可以同时拥有多个缓存版本,请参阅PEP 3147了解更多详细信息)。
| 归档时间: |
|
| 查看次数: |
1171 次 |
| 最近记录: |