41

哪个更快,python 网页或 php 网页?

有谁知道 pylons(或任何其他框架)的速度与使用 php 制作的类似网站相比如何?

我知道通过 cgi 提供 python 基础网页比 php 慢,因为它每次启动时间都很长。

我喜欢使用 pylons,如果它比 php 慢,我仍然会使用它。但是,如果 pylons 比 php 快,我可能希望最终说服我的雇主允许我将站点转换为 pylons。

4

10 回答 10

89

听起来您不想比较两种语言,而是想比较两种Web 系统

这很棘手,因为涉及到许多变量。

例如,Python Web 应用程序可以利用mod_wsgi与 Web 服务器通信,这比 PHP 与 Web 服务器通信的任何典型方式都快(如果您使用 Apache,即使 mod_php 最终会变慢,因为 Apache 只能将 Prefork MPM 与 mod_php 一起使用,而不是像 Worker 这样的多线程 MPM)。

还有代码编译的问题。如您所知,每次文件更改时运行文件时,Python 都会即时编译为字节码(.pyc 文件)。因此,在第一次运行 Python 文件后,会跳过编译步骤,Python 解释器会简单地获取预编译的 .pyc 文件。正因为如此,有人可能会争辩说 Python 比 PHP 具有原生优势。但是,可以为 PHP 网站(我最喜欢的是eAccelerator)安装优化器和缓存系统,以达到大致相同的效果。

一般来说,存在足够多的工具,以至于一个人几乎可以做另一个人可以做的所有事情。当然,正如其他人所提到的,切换语言的业务案例不仅仅涉及速度。我现在的雇主有一个用 oCaml 编写的应用程序,结果证明这是一个错误,因为原作者离开了公司,其他人都不想碰它。同样,PHP-web 社区比 Python-web 社区大得多;与 Python 支持相比,网站托管服务更有可能提供 PHP 支持;等等

但回到速度。您必须认识到,这里的速度问题涉及许多活动部分。幸运的是,其中许多部分可以独立优化,为您提供各种途径来寻求性能提升。

于 2008-09-17T03:44:12.750 回答
30

试图说服您的雇主从 PHP 移植到 Python 是没有意义的,尤其是对于现有系统,我认为您在问题中暗示了这一点。

这样做的原因是您已经拥有一个(大概)工作系统,并且已经投入了时间和精力(和经验)。为了微不足道的性能提升而放弃这一点(不是我声称会有一个)将是愚蠢的,没有一个称职的经理应该认可它。

它还可能会产生可维护性问题,具体取决于其他谁必须使用该系统,以及他们使用 Python 的经验。

于 2008-09-16T21:24:46.780 回答
7

我认为 PHP (>5.5) 对于复杂的 Web 应用程序来说更快、更可靠,因为它针对网站脚本进行了优化。

您可以在网上找到的许多基准测试只是为了证明首选语言更好。但是您不能将 2 种语言与运行 X 次的数学任务进行比较。对于真正的基准测试,您需要两个具有数百个类/文件的可比框架以及一个同时运行 100 个客户端的 Web 应用程序。

于 2015-11-10T09:47:19.203 回答
2

差不多。差异不应大到足以成为选择其中一个的理由。不要试图通过编写自己的小基准("hello world")来比较它们,因为您可能不会得到代表真实网站生成更复杂页面的结果。

于 2008-09-16T21:13:00.960 回答
2

PHP 和 Python 非常相似,无需担心任何类型的切换。

从一种语言切换到另一种语言可能获得的任何性能改进都将远远超过简单地不花钱转换代码(你不是免费编码对吗?)而只是购买更多硬件。

于 2008-09-16T21:16:15.257 回答
1

如果它没有坏,就不要修理它。

只需编写一个快速测试,但请记住,每种语言在某些功能上会比另一种更快。

于 2008-09-16T21:06:27.620 回答
1

您需要能够为切换制定业务案例,而不仅仅是“它更快”。如果基于技术 B 构建的站点在一定时期(例如 3 年)内的开发人员维护时间要多出 20%,那么在运行技术 A 的系统中添加另一个 Web 服务器以弥合性能差距可能会更便宜。

仅仅说“我们应该切换到技术 B,因为技术 B更快! ”并没有真正的作用。

由于 Python 远不如 PHP 无处不在,如果它的托管、开发人员和其他维护成本(长期)使其适合这种情况,我不会感到惊讶。

于 2008-09-16T21:11:49.433 回答
1

除非可用性成为问题,否则 IS 组织不会考虑这一点。

如果是这样,请查看复制、负载平衡和大量内存。

于 2009-02-04T06:28:30.933 回答
0

唯一正确的答案是“视情况而定”。有很多变量会影响性能,您可以在任何一种情况下优化很多东西。

于 2008-09-16T21:08:06.820 回答
-1

在我的新工作中,我不得不回到 Web 开发,如果不是 Pylons/Python,也许我会选择住在丛林中 :) 在我的主观意见中,PHP 是幼儿园的,我在第三年做到了我相信,许多自尊(或高估)的软件工程师都不想被 PHP 代码打扰。

为什么我的雇主同意?我们(团队)刚刚切换到 Python,他们也没什么好说的。该网站仍然是并且将是 PHP,但我们正在使用 Python 开发其他应用程序,包括 Web。铁塔的优点?您可以将您的 python 库集成到 Web 应用程序中,也就是说,恕我直言,这是一个巨大的优势。

至于性能,我们仍然遇到麻烦。

于 2010-03-09T20:13:47.687 回答