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