基准测试PHP与Pylons

时间:2009-03-23 18:52:48

标签: php python pylons benchmarking

我想对PHP与Pylons进行基准比较。我希望两者的比较尽可能均匀,所以这就是我想出的:

  • PHP 5.1.6 with APC,使用连接到MySQL数据库的智能模板
  • Python 2.6.1,使用Pylons和连接相同MySQL数据库的mako模板

我是否应该在该设置中更改任何内容以使其更公平地进行比较?

我将在几乎没有活动的备用服务器上运行它,2G内存和4个内核。

有关我应该或不应该如何对它们进行基准测试的任何建议?我打算用ab来做实际的基准测试。

相关

2 个答案:

答案 0 :(得分:3)

如果您没有在PHP中使用ORM,则不应使用SQLAlchemy ORM或SQL-Expression语言,而应使用原始SQL命令。如果你正在使用APC,你应该确保Python对你的应用程序所在的文件夹有写权限,或者.py文件是预编译的。

此外,如果您正在使用智能缓存,请考虑启用Mako缓存以保持公平。

然而有一个问题:Python MySQL适配器令人难以置信。对于数据库连接,您可能会注意到性能较慢(如果SQLAlchemy为自己执行unicode解码)或者它泄漏内存(如果MySQL适配器那样做)。

PHP没有这两个问题,因为没有unicode支持。因此,为了实现完全公平,您必须在数据库连接中禁用unicode(但这是一个令人难以置信的坏主意)。

所以:似乎没有一种比较PHP和Pylons的公平方法:)

答案 1 :(得分:2)

  1. 你的PHP版本已经过时了,PHP已经在5.2.x领域已经有一段时间了,虽然没有大规模的改进,但我会说有足够的变化来测试任何旧版本是不公平的比较。

  2. PHP 5.3即将成为最终版本,你应该在你的基准测试中加入它,因为PHP 5.x有很大的改进,并且是5.x的最后一个版本,如果你真的想要分裂头发PHP 6也处于alpha / beta状态,这也是一次重大修改。

  3. 比较完全不同的语言可能很有趣,但不要忘记你正在将苹果与橙子进行比较,而且任何2/3 / N-Tier应用程序中最大的瓶颈都在等待I / O.所以最大的因素是你的数据库速度,比较PHP和Python VS.Net纯粹基于速度是没有意义的,因为它们中的所有3个都将在不到1秒的时间内执行,但你可以轻松地等待2-3秒数据库查询,具体取决于在你的硬件和你正在做的事情上。

  4. 如果您担心什么是更快,那么您采用绝对错误的方法来选择平台。还有更重要的问题,例如(不按顺序):

    一个。我可以轻松找到该平台上熟练的开发人员

    湾这些熟练的开发者花了多少钱

    ℃。该语言提供多少投资回报率

    d。功能丰富的语言