1

我想知道我可以从 rpm(或使用 yum)安装的 Python 解释器和从源代码编译的 Python 解释器(带有用于编译的先验设置好的标志)之间是否存在任何记录在案的性能差异。

我使用 Redhat 6.3 机器作为 Django/Apache/Mod_WSGI 生产服务器。我已经以不同的设置和不同的顺序正确编译了所有内容。但是,我通常将 build-dev 依赖项保留在此类机器上。出于各种与自我相关(或多或少实际)的原因,我想使用 Python-2.7.3。默认情况下,Redhat 附带 Python-2.6.6。我想我可以接受它,但它会以某种方式伤害我(我将不得不放弃并找到一些图书馆和我的自我的替代品)。

然而,除了我的自我和依赖之外,我想知道对 Django 服务器的性能有什么影响。

4

1 回答 1

4

如果您使用编译 RPM 版本时使用的完全相同的标志进行编译,您将获得一个完全一样快的二进制文件。您可以通过查看 RPMspec文件来获取这些标志。

但是,有时您可以做得比预建版本更好。例如,您可以让编译器针对您的特定 CPU 进行优化,而不是针对“通用 386 兼容”(或任何 RPM 优化对象)。当然,如果您不知道自己在做什么(或故意这样做),也总是可以构建比预构建版本慢的东西。

同时,2.7.3 在某些方面比 2.6.6 更快。他们中的大多数通常不会影响你,但如果他们这样做,他们可能会是一个巨大的胜利。

最后,对于绝大多数 Python 代码,Python 解释器本身的速度与您的整体性能或可伸缩性无关。(如果是这样,您可能想尝试使用 PyPy、Jython 或 IronPython 来替换 CPython。)对于 WSGI 服务尤其如此。如果你没有做任何缓慢的事情,Apache 可能会成为瓶颈。如果你的事情很慢,它可能是 I/O 绑定的,并且超出了 Python 的控制(比如读取文件)。

最终,您可以知道获得多少收益的唯一方法是尝试两种方式和性能测试。但是,如果您只是想要一个经验法则,我会说期望获得 0% 的收益,如果幸运的话,会感到惊喜。

于 2013-03-13T21:44:10.237 回答