PHP 与 Pylons 的基准测试
-
21-08-2019 - |
题
我想对 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 :)
其他提示
你的 PHP 版本已经过时了,PHP 已经在 5.2.x 区域有一段时间了,虽然没有大规模的改进,但有足够的变化,我想说测试任何较旧的版本是不公平的比较。
PHP 5.3 即将成为最终版本,您应该将其纳入您的基准测试中,因为 PHP 5.x 有了巨大的改进,并且是 5.x 的最后一个版本,如果您真的想吹毛求疵的话,PHP 6 也是在 alpha/beta 中,这也是一次重大的改革。
比较完全不同的语言可能很有趣,但不要忘记您正在比较苹果和橘子,而任何 2/3/N 层应用程序中最大的瓶颈是等待 I/O。因此,最大的因素是你的数据库速度,纯粹在速度上比较 PHP 与 Python 与 ASP.Net 是没有意义的,因为它们三个都将在不到 1 秒的时间内执行,但你可以轻松地在数据库查询上等待 2-3 秒,具体取决于关于您的硬件和您正在做的事情。
如果您担心哪个更快,那么您选择平台的方法绝对是错误的。 还有更重要的问题,比如(排名不分先后):
A。我在该平台上如何轻松找到熟练的开发人员
b.那些熟练的开发人员要花多少钱
C。该语言提供多少投资回报率
d.该语言的功能有多丰富