首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

go php7 php8 swoole 性能比较

最近在休息的时候特地花了一点时间,把go、php7.4 php8.1 swoole4在循环 10亿内求和,比较各项耗时时间。顺便让 php8开启JIT功能(关闭JIT)都测试了一遍。

测试目标:计算 1+2+3+...+n 的和,n=10亿

(暂时到10亿), 如果想测试更大的数据,可以复制下面程序自己稍作修改就可以了。

代码示例:

php7 结果

php8 结果(代码如php7 一致,可复用,且已开启jit)

php8 结果(关闭jit)

查看是否关闭jit,php.ini配置文件中编辑如下即可,并重启php-fpm( pkill -USR2 php-fpm)

浏览器查看下是否关闭jit成功与否即可。

结论一:在php各版本测试得出的结果可以看出

php8性能较于php7有了较高的提升,具体多少我们可以查看php8官方给的性能测试案例。

php8在开启jit的时候,比未开启jit,效率要高很多。 

swoole4:代码和php写法基本一致,区别就是安装php后在安装下swoole扩展,并在php.ini配置文件开启该扩展

代码示例:我创建的是http 服务,

服务中断执行:php swoole_http.php

// 创建http服务

$http = new Swoole\Http\Server("0.0.0.0", 9503);

$http->on("Start", function () {

echo "Swoole Http Server 已成功启动";

});

$http->on("Request", function ($request, $response){

list($m1, $s1) = [memory_get_usage(), microtime(true)];

$sum = 0;

for ($i = 1; $i

$sum += $i;

}

list($m2, $s2) = [memory_get_usage(), microtime(true)];

$string = sprintf("耗时: %.6f 秒, 占用内存: %.3f MB", $s2 - $s1, ($m2 - $m1) / 1024 / 1024);

var_export([$sum, $string]);

});

$http->start();

结果:看最终执行结果,swoole的性能比 php8 又有进一步的提升

最后我们看看 Go的执行效果吧(拭目以待吧),当然 Go 也是最近才接触,很多Go的同学都说Go的一大堆好(如静态编译、协程、高并发),当然我也承认。

go返回结果,卧槽,太牛逼了,不到一秒。看来go要值得好好研究下啊,

工作这么多年,一直搞的php,看来是得花点时间并沉下心研究下其他一门语言了。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OztSf9YmzO3S20Skb7GpsPVA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券