简单的PHP 8 / PyPy / Node.js JIT性能对比
写在前面:完整的评估性能必须要靠更全面的benchmark,micro-benchmark只能说明一部分问题,一般只能提供某种场景下提升的情况。真实的提升离不开真实场景下对应用的测试。 在知乎上看到一个很有意思的PHP 8 JIT版本的benchmark https://zhuanlan.zhihu.com/p/314783520 zhuanlan.zhihu.com 这个实验通过一个Brainfuck解释器 + Brainfuck代码来测试性能,比较有趣,因为很少有这么测试的。当然,本质上还是micro-benchmark,而且测试的性能很单一,主要就是:单变量++/--,数组读,数组读写。 不过这个文章当中犯了个错误,就是PHP 8虽然已经release了,但是默认并不开启JIT,而且手册很具有误导性,因为手册当中写opcache.jit默认设置为开启,然而还有个opcache.jit_buffer_size也要设置为非0值才可以,更不要说官方镜像默认没有加载opcache.so(what???)所以正确测试的命令行是: php -dzend_extension=opcache.so -dopcache.enable_cli=1 -dopcache.enable=1 -dopcache.jit_buffer_size=100M run.php