问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

简单的PHP 8 / PyPy / Node.js JIT性能对比

发布网友 发布时间:2024-09-30 12:26

我来回答

1个回答

热心网友 时间:2024-09-30 14:02

写在前面:完整的性能评估需要依赖全面的benchmark测试,micro-benchmark只能展示部分问题,通常只能提供特定场景下的性能提升。真正的性能提升需要依托于真实场景下的应用测试。

在知乎上看到一篇关于PHP 8 JIT版本的benchmark测试,非常有意思。

这个实验通过Brainfuck解释器加上Brainfuck代码来测试性能,这种测试方式比较少见。尽管本质上还是micro-benchmark,但测试的性能较为单一,主要集中在:单变量++/--,数组读,数组读写等方面。

然而,这篇文章中存在一个错误,即PHP 8虽然已经发布,但默认并未开启JIT。手册中对此存在误导性描述,因为手册中提到opcache.jit默认设置为开启,但实际上还需要将opcache.jit_buffer_size设置为非0值,更不用说官方镜像默认没有加载opcache.so(what???)。因此,正确的测试命令行是:

PHP是所有测试语言中唯一需要单独配置的。

以下是我在虚拟机上进行的测试结果,虚拟机的CPU型号为E5-2667 v3 @ 3.20GHz,比i5略强,因此速度也会比上一个作者测试的结果快一些。所有测试使用的binary都是官方docker镜像。

以下是

注意:Python有两个版本的脚本,差别很小,因为Python没有常量定义语法,所以第一个版本是用类属性代替常量的,第二个版本手动替换成了立即数。第一个版本更接近其他语言的写法,第二个版本更接近其他解释器解释的版本。

使用代码在github上

houbo1016/PHP8-Benchmark-the-Brainfuck-Way
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
北京协和售后 spcp代收费是什么 Doppelherz/双心 铁元营养口服液 500ml-详细介绍 淘宝阿尔卑斯店的德国铁元怎么样? 后面的肩膀缝疼因为什么 刮痧后一躺下肩膀疼的要命 “亭台六七座”的出处是哪里 mahini 是什么意思? 外阴溃烂了怎么办 外阴溃疡,溃疡处伤口不愈合,可以用什么药 把2分之一与3分之一的和扩大4分之一是多少? 一台榨油机5分之4小时榨油25分之24吨,平均每小时榨油多少吨? golang相对于java的优势(golang与java性能对比) 4分之5减24分之25等于? 24/25×5/42等于多少要约分? 技术分享|关于容器最通俗的解释,人人都能三分钟搞懂 25分之24等于5分之4吗 e31230v2可以配哪种显卡? 视频抗干扰器视频抗干扰器介绍 苹果手机怎么设置不锁屏断网? 苹果如何关闭wifi 苹果6怎么关闭已经连接的WIFI? 苹果手机如何彻底关闭WiFi功能 小米文件管理误删的文件怎么恢复 我有一个移动硬盘,插在电脑上怎么没显示啊? 苹果7怎样彻底关闭控制中心的wifi开关呢? 用于电子邮件的协议是 电子邮件的传输协议 做梦刚开始是壁虎,后来变成蛇,有什么寓意吗? 手机耳机插上还是外放模式解除 42分之5乘以24等于多少? 免费的ddns带飞黑裙(ipv6 Callback dynv6) 梦中的你是什么意思? 电话手表放久了充不上电? 哪个软件可以免费打电话。 “他人即地狱”是什么意思?高人指教 请教一下,孕妇可以吃什么比如水果蔬菜之类的! 请教宝妈们孕妇能吃百合吗? 请教:孕妇参加教师招聘体检能通过吗 如何退出qq账号? 请教,孕妇可用 我26了,男。看到身边的人都结婚了自己还是单身狗,心好慌 电脑桌面图标没有了怎么恢复? 在Word中,如果要固定横线并防止其跟随文本移动,可用文本框实现,操作步 ... 用C语言编写,把"我爱你"三个字循环520次 word上下偏差怎么标注word上下偏差怎么标注出来 仙剑奇侠传三修改器! 仙剑奇侠传3 修改器 520到了,不会编程的人如何用程序代码表白? 经济法案例分析11,,帮忙啊,谢谢拉,呵呵