2

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

  • 带有 APC 的 PHP 5.1.6,使用 smarty 模板连接到 MySQL 数据库
  • Python 2.6.1,使用 Pylons 和 mako 模板连接同一个 MySQL 数据库

我应该在该设置中更改什么以使其进行更公平的比较吗?

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

关于我应该或不应该如何对它们进行基准测试的任何建议?我计划使用 ab 进行实际的基准测试。

有关的

4

2 回答 2

3

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

此外,如果您使用 smarty 缓存,为了公平起见,请考虑启用 Mako 缓存。

但是有一个问题:Python MySQL 适配器非常糟糕。对于数据库连接,您可能会注意到性能下降(如果 SQLAlchemy 为自己执行 unicode 解码)或泄漏内存(如果 MySQL 适配器这样做)。

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

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

于 2009-03-23T19:15:57.817 回答
2
  1. 你的 PHP 版本已经过时了,PHP 已经在 5.2.x 领域有一段时间了,虽然没有大的改进,但我会说有足够的变化来测试任何旧版本是不公平的比较。

  2. PHP 5.3 即将成为最终版本,您应该将其包含在您的基准测试中,因为 PHP 5.x 有很大的改进,并且是 5.x 的最后一个版本,如果您真的想分叉 PHP 6 也是在 alpha/beta 中,这也是一次大修。

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

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

    一种。在该平台上找到熟练的开发人员有多容易

    湾。那些熟练的开发人员要花多少钱

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

    d。语言的功能有多丰富

于 2009-03-23T19:36:33.820 回答