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

时间:2008-09-16 21:05:27

标签: php python performance pylons

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

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

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

我喜欢使用挂架,如果它比php慢,我仍会使用它。但如果挂架比php更快,我希望最终可以说服我的雇主允许我将网站转换为挂架。

10 个答案:

答案 0 :(得分:86)

听起来您不想比较两种语言,但您想要比较两个网络系统

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

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

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

一般来说,存在足够多的工具,以便人们可以完成对方可以做的所有事情。当然,正如其他人所提到的,切换语言的商业案例不仅仅涉及速度。我们在我现在的雇主那里用oCaml写了一个应用程序,结果证明这是一个错误,因为原作者离开了公司,没有其他人愿意接触它。同样,PHP-web社区比Python-web社区大得多;网站托管服务比Python支持更有可能提供PHP支持;等

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

答案 1 :(得分:28)

试图说服你的雇主从PHP移植到Python是没有意义的,特别是对于现有的系统,这是我认为你在你的问题中隐含的。

原因在于您已经拥有(可能)工作系统,现有投入的时间和精力(和经验)。放弃这个以支持微不足道的性能提升(不是我声称会有一个)会是愚蠢的,没有值得他的盐的经理应该支持它。

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

答案 2 :(得分:5)

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

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

答案 3 :(得分:2)

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

答案 4 :(得分:2)

PHP和Python非常相似,无法进行任何类型的切换。

从一种语言切换到另一种语言可能会带来的任何性能提升都会因为不花钱转换代码(你不是免费代码吗?)而只是购买更多硬件而大大超出。

答案 5 :(得分:1)

如果没有破坏,请不要修复它。

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

答案 6 :(得分:1)

您需要能够为切换创建业务案例,而不仅仅是“它更快”。如果基于技术B构建的站点在一段时间内(例如3年)的开发人员维护成本增加20%,那么将另一个Web服务器添加到运行技术A的系统以缩小性能差距可能会更便宜。 p>

只是说“我们应该切换到技术B,因为技术B 更快!”并不真正有效。

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

答案 7 :(得分:1)

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

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

答案 8 :(得分:0)

唯一正确的答案是“它取决于”。有很多变量会影响性能,你可以在任何一种情况下优化很多东西。

答案 9 :(得分:0)

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

为什么我的雇主同意?我们(团队)刚刚切换到Python,他们没有太多话要说。该网站仍然是PHP,但我们正在用Python开发其他应用程序,包括web。挂架的优点?您可以将您的python库集成到Web应用程序中,即imho,这是一个巨大的优势。

至于表现,我们仍然遇到麻烦。