今天我很惊讶地了解到PHP在高流量网站中的广泛应用。
我一直认为PHP在性能方面并不强大,它是一种动态的脚本语言(例如,与C/Java/C#等静态类型的编译语言相比)。
那么为什么它表现得这么好呢?
发布于 2010-07-23 23:40:16
你通常会发现它并不像你想象的那样慢。许多站点运行缓慢的原因是因为主机负载过重。
但是与编译语言相比,PHP的一个主要优点是易于维护。因为PHP是为HTTP流量而设计的,所以与大多数其他编译语言相比,需要构建的代码更少。此外,合并更改变得更容易,因为您不需要重新编译和重新启动服务器(就像使用已编译的二进制文件一样)……
我在这两个方面都做了相当多的基准测试,对于每秒50k请求以下的任何地方(根据我的数字),使用编译二进制文件(FastCGI)真的没有什么显著的好处。当然,使用编译的C会更快一点,但除非你谈论的是Facebook级别的流量,否则这并不意味着显著的$$$。与使用C相比,它肯定不会抵消PHP可以承受的相对快速的开发速度(因为它不是内存托管的,所以很可能需要很多倍的代码)……
如果编写得当,PHP可以具有很强的可扩展性。限制因素通常存在于数据库引擎中。无论你使用什么技术,这都将是一个共同的因素。
发布于 2010-07-23 23:45:15
大型企业环境中的Java部署是一个包含构建和代码的mess...fighting,这些构建和代码可能无法对最细微的东西进行编译。此外,PHP运行在服务器端相当简单的设置上,而不是Weblogic (或其他)那样的庞大代码,所以其他人是正确的,因为它的开发成本很低,并且在几台不同的机器上部署的成本很低。当然,当我在一个大型的、效率非常低的公司环境中工作时,我对Java感到厌烦,这当然也没有帮助。
我不会说PHP开发人员本身更便宜(我现在作为PHP开发人员比作为Java UI开发人员赚得更多),但我确实知道,我的上一个雇主付钱给我,让我花了大量的时间来配置、部署、编译等,而这些在PHP中并不是必需的。我们谈论的可能是一天/一周的相关配置大惊小怪,因为新的分支推出或与发布相关的配置。所以,我现在支付的额外费用是由我每周能够完成的大量代码来弥补的。
MySQL和Postgres (在较小程度上)变得如此强大,这无疑对PHP有所帮助。它们之间没有直接联系,但将它们作为共同的配对,对于那些制定决策的人来说,只会让交易变得更加甜蜜。
发布于 2010-07-23 23:35:53
它并不是真的表现得“很好”,只是足够好到可以使用。但是请记住,Java和C#.NET也是在VM中作为字节码运行的。使用Zend Optimizer等工具的PHP也可以跳过编译步骤,以字节码的形式运行。
PHP不会像本地编译的C代码那样快,但是像Facebook这样的网站会把PHP编译成C++来让它运行得更快(参见HipHop-PHP)。
https://stackoverflow.com/questions/3319701
复制相似问题