我编写了一个小型基准测试套件,其中包括针对 PHP、HHVM 和 Zephir 的 CLI 测试。我现在正在尝试为 PHP、HHVM 和 Zephir 添加 FastCGI 测试。对于上下文,您可以查看我最初为此撰写的文章。
该代码可在 GitHub 上的 fcgi 分支中找到。
本质上,我创建了一个 HHVM 扩展、PHP 和 Hack 版本的相同 Mandelbrot 集生成代码(参见fcgi-hhvm-*
GitHub 项目)。我为它们中的每一个设置(setup.sh
)一个 HHVM FastCGI 服务器,通过对它发出一些请求来预热它,然后进行基准测试。FastCGI 请求由 C++ FastCGI CLI 客户端处理,以使其在基准上的足迹尽可能小,而不是说 nginx。
它适用于 100x100 和 200x200 的 Mandelbrot 集,但一旦增加到 1,000,它就会在运行 PHP、Hack 或通过 HHVM 扩展的 HHVM 的一次迭代中随机挂起。
不幸的是,日志也没有写入任何内容,它只是默默地挂起。如果我终止作业并尝试重新运行它而不停止并启动服务器,它会再次挂起。所以它使服务器处于故障状态,但不会导致服务器崩溃或死亡。
我已尝试更改许多配置选项 - 请参阅我的项目中的相关问题:https ://github.com/treffynnon/Benchmark-PHP-HHVM-Zephir/issues/7
有谁知道是否有我应该调整的设置或可能导致此问题的问题?
顺便说一句,PHP 脚本需要更长的时间才能运行,但它们每次都能成功完成,所以我很确定这不是我的客户端实现中的东西,而是 HHVM 本身中的东西。相同的测试通过 CLI 上的 HHVM 运行良好,但不能通过 FastCGI。
HHVM 版本:从 master@190a12a 构建