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

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

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

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

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

有关的

有帮助吗?

解决方案

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

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

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

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

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

其他提示

  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 与 ASP.Net 是没有意义的,因为它们三个都将在不到 1 秒的时间内执行,但你可以轻松地在数据库查询上等待 2-3 秒,具体取决于关于您的硬件和您正在做的事情。

  4. 如果您担心哪个更快,那么您选择平台的方法绝对是错误的。 还有更重要的问题,比如(排名不分先后):

    A。我在该平台上如何轻松找到熟练的开发人员

    b.那些熟练的开发人员要花多少钱

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

    d.该语言的功能有多丰富

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top