我打算使用 python 来构建几个用作服务的程序,稍后从 PHP 代码运行。在性能方面,使用 cx_freeze 将 python 代码编译成二进制文件或每次运行程序时运行 python 解释器,哪个更快?
部署环境:
OS: Arch Linux ARM
硬件: Raspberry Pi [700MHz ARMv6 CPU,256MB RAM,SD卡文件系统]
Python解释器: Python2.7
应用调用频率:高
你需要测试它,因为没有一个正确的答案。cx_freeze 所做的只是将字节码包装成可执行文件,而不是解释器从磁盘上缓存的 .pyc 读取。
从理论上讲,打包的可执行文件可能会更快,因为它读取的文件更少,但另一方面,解释器可能会更快,因为它可能已经在磁盘缓存中。
可能几乎没有什么选择,而且无论有什么区别,都不能归结为“编译”与“解释”。
cx_freeze(以及将 Python 代码“编译”为可执行文件的各种竞争对手)实际上并不编译任何东西。它们只是以可以直接运行的方式打包应用程序的一种便捷方式。换句话说,没有性能差异。
根据您需要在 Python 脚本中执行的操作,您可以考虑使用 Pypy 来提高性能。