探索PHP7(一)--性能

2024-05-31 07:32
文章标签 性能 探索 php7

本文主要是介绍探索PHP7(一)--性能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

探索PHP7(一)–性能

前言

在2015年12月2号,鸟哥的在开源中国发布的新闻写在 PHP 7 发布之际一些话,小编意识到从8月份发布第一个公测版到现在经过了将近4个月的等待PHP7正式版本终于发布了,所以果断装上了一个玩玩,确实和之前所说的一样提升很大,进过了几天的测试,所以写下这篇博文希望能和大家有一个共同的了解.

注:已经有很多新闻博客分享了关于PHP7的一些讯息,我希望通过一名普通程序员的角度来看待它对我们带来的价值.

附上:

鸟哥:写在 PHP 7 发布之际一些话:http://www.oschina.net/news/68607/php-7-laruence-feeling

PHP官方地址:http://www.php.net/

1. 简单粗暴的测试

那么问题来了PHP7发布的最大的亮点是什么?

无疑是它带了了相当可观的性能提升,我们先从几个长使用的框架下手看看5.6和7之间的差距有多少,然后我们在通过具体的测试来对不同的操作具体产生了多大的影响

配置信息:服务器为:2核心2G(Centos6.5),LoadRunner压力机为4核4G,ab压力机为2核2G

PHP版本信息:PHP 5.6.14 (cli) 和 PHP 7.0.0 (cli) 均开启opcache

在这里对于小编几个常用的框架(PhalApi,ThinkPHP,wordpress)针对不同的环境进行压力测试(本来有意向对C框架进行测试,可惜Phalcon并没有支持PHP7,等支持后后继补上)

1.1 ab测试

  1. wordpress

    php5.6

    php7

  2. ThinkPHP

    php5.6

    php7

  3. PhalApi

    php5.6

    php7

1.2 LoadRunner测试

  1. wordpress

    php5.6

    php7

  2. ThinkPHP

    php5.6

    php7

  3. PhalApi

    php5.6

    php7(压力服务器瓶颈CPU占用满)

1.3 结论

我们能从ab测试中看出PHP7对wordpress的提升已经超过了2倍以上,对PhalApi和ThinkPHP这两个框架都是达到了最少3/1 的提升,但是从LoadRunner的测试结果中小编感到有些奇怪,wordpress和ThinkPHP居然没有什么提升,但是wordpress在PHP7中稳定性明显高于PHP5.6,PhalApi和ab测试中保持了一致的结果,而且在PHP7测试中,压力服务器达到了瓶颈,也就是说实际值是大于压力值的.

2. 稳定性测试

通过了简单粗暴的性能测试之后,我们很明显的看的出来性能的提升还是非常显著,但是在我们替换掉生产环境之前还面临这一个问题那就是稳定性,这里采用LoadRunner对正常的业务(使用PhalApi框架)进行了12小时的压力对比测试(基于PhalApi中的正常业务),结果如下:

php5.6

php7

从12小时压力测试曲线图可以看出,php7的稳定性依然强劲,并且在细节上稍微超越了PHP5.6

3. 总结

进过了上面的这么多数据分析,相信大家对PHP7的性能有了一个大致的体会,这次的测试只是对于纯框架来说,在真正的业务场景下小编对生产环境的项目根据场景不动提升在3/2到3/4不等,小编只能说赶快上上上,还在为php性能苦恼的童鞋赶快来试试PHP7吧,在本章之后还会对PHP7具体提升在那里和新特性解读继续深入,喜欢的童鞋希望你能关注!

鸣谢:@鸟哥,@PHP7开发组成员,为我们带来这次重大的更新,我相信PHP在今后的路上会越走越远

注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!—–转载请申明出处,以及地址

本人QQ号:591235675 欢迎大家一同交流!

这篇关于探索PHP7(一)--性能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1017562

相关文章

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

mysql线上查询之前要性能调优的技巧及示例

《mysql线上查询之前要性能调优的技巧及示例》文章介绍了查询优化的几种方法,包括使用索引、避免不必要的列和行、有效的JOIN策略、子查询和派生表的优化、查询提示和优化器提示等,这些方法可以帮助提高数... 目录避免不必要的列和行使用有效的JOIN策略使用子查询和派生表时要小心使用查询提示和优化器提示其他常

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

pip install jupyterlab失败的原因问题及探索

《pipinstalljupyterlab失败的原因问题及探索》在学习Yolo模型时,尝试安装JupyterLab但遇到错误,错误提示缺少Rust和Cargo编译环境,因为pywinpty包需要它... 目录背景问题解决方案总结背景最近在学习Yolo模型,然后其中要下载jupyter(有点LSVmu像一个

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6