广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php7和php5的详细对比
  • 932
分享到

php7和php5的详细对比

php对比php7php5 2022-11-12 01:11:15 932人浏览 八月长安
摘要

目录PHP7安装两个php版本PHP7和PHP5的对决1. 纯php脚本测试2.php数据库操作测试3.PHP框架测试结论PHP7 PHP7正式发布到现在已经一年半了,刚出道就号称比

PHP7

PHP7正式发布到现在已经一年半了,刚出道就号称比旧版本快了几倍,各种开源框架或系统运行在PHP7上速度效率提高了几倍,反正不管是媒体还是开发者都在煽风点火,不,应该是赞不绝口。

一般手机系统升级我是跑最后的,因为不愿意踩坑,毕竟iOSAndroid这种系统都会出现bug,何况世界上被人黑的最多的语言。

今日时机已到,看看PHP7有没有传说的那么王炸。

安装两个PHP版本

Http://php.net/ 已经有最新PHP7的最新版本,大家可自行下载。
为了测试PHP5和PHP7(PHP6已被放弃,心疼1s)的性能,我在不同的目录安装了两个php版本。

安装过程就略过了,无论源码安装还是包管理工具安装,记得自己的路径即可。

PHP7:

# /usr/local/php7/bin/php -v

PHP 7.1.5 (cli) (built: May 13 2017 23:36:41) ( NTS )

Copyright (c) 1997-2017 The PHP Group

PHP5:

# /usr/bin/php -v

PHP 5.6.30 (cli) (built: Jan 19 2017 22:31:39) 

Copyright (c) 1997-2016 The PHP Group

环境说明:为了保证最佳的测试效果,本次测试在直接在生产环境进行,更逼近真实情况。
操作系统Centos 7.2 64位
基础配置:1核 1GB 1Mbps
主机品牌:腾讯云

PHP7和PHP5的对决

1. 纯php脚本测试

vim test.php


$arr = array();
for ($i = 0; $i < 500000; $i++) {
        $arr[$i] = $i;
}
 
$tmp = array();
foreach ($arr as $i) {
    if ($i % 2 == 0) {
        $is_exists = array_key_exists($i, $arr);
        if ($is_exists) {
           array_push($tmp, $i);
        }
    }
}

PHP5版本测试:

time /usr/bin/php test.php 

real    0m0.301s

user    0m0.239s

sys     0m0.050s

--------------------------

time /usr/bin/php test.php

real    0m0.310s

user    0m0.241s

sys     0m0.054s

--------------------------

time /usr/bin/php test.php

real    0m0.289s

user    0m0.238s

PHP7版本测试:

time /usr/local/php7/bin/php test.php

real    0m0.087s

user    0m0.063s

sys     0m0.024s

-------------------------------------

time /usr/local/php7/bin/php test.php

real    0m0.106s

user    0m0.073s

sys     0m0.033s

--------------------------------------

time /usr/local/php7/bin/php test.php

real    0m0.083s

user    0m0.061s

通过数据可以看出来,单纯的php脚本测试,可以看出php7性能提升了3到4倍。

2.php数据库操作测试

首先我们创建一个用户表:


Table: test_user
Create Table: CREATE TABLE `test_user` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(100) NOT NULL DEFAULT '',
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

给test_user表插入一条数据:


insert into test_user (uid,name) values (1,"dada");
MariaDB [test]> select * from test_user;
+-----+------+
| uid | name |
+-----+------+
|   1 | dada |
+-----+------+

创建数据库测试脚本test_db.php,确保你的两个PHP版本都安装了PDO扩展。


/usr/bin/php -m|grep pdo
pdo_Mysql
pdo_sqlite
 
/usr/local/php7/bin/php -m|grep pdo
pdo_mysql
pdo_sqlite

我的两个PHP版本已经安装了PDO(不要再使用php_mysql扩展,已经过时了,PHP7已经完全抛弃,mysqli也不建议使用)。

接下来我们通过PDO编写脚本,测试select执行50万次的性能对比:


$host = "yourHost";
$user = "yourUser";
$pass = "yourPass";
$db   = "test";
$port = 3306;
 
try
{
  $dbh = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
  echo "Connected<p>";
}
catch (Exception $e)
{
  echo "Unable to connect: " . $e->getMessage() ."<p>";
}
 
$sql = "select  SQL_NO_CACHE * from test_user;";
$tmp = array();
for ($i=1; $i<=500000; $i++) {
  $ret = $dbh->query($sql);  
  foreach ($ret as $row) {
    $tmp['id']   = $row['id'];
    $tmp['name'] = $row['name'];
  }
}

PHP5测试test_db.php:

time /usr/bin/php test_db.php

real    0m48.396s

user    0m11.149s  

sys     0m3.998s

real    0m51.447s

user    0m11.800s

sys     0m4.395s

real    0m51.517s

user    0m11.733s

PHP7测试test_db.php:

real    0m47.900s

user    0m9.875s

sys     0m4.130s

real    0m46.977s

user    0m9.760s

sys     0m3.983s

real    0m50.010s

user    0m10.268s

这次脚本执行了50w次查询,user执行时间PHP7执行的脚本几乎都比PHP5要少一秒!是少一秒不是一毫秒。

3.PHP框架测试

thinkphp

国内肯定是首选thinkphp框架,选择最新的thinkphp5。我这里直接在官网下载的thinkphp5.0.9版本。

(一)框架入口测试

PHP5下的测试:

time /usr/bin/php ./public/index.php

real    0m0.036s

user    0m0.026s

sys     0m0.010s

real    0m0.038s

user    0m0.026s

sys     0m0.012s

real    0m0.041s

user    0m0.032s

PHP7下的测试:

time /usr/local/php7/bin/php ./public/index.php

real    0m0.027s

user    0m0.021s

sys     0m0.005s

real    0m0.027s

user    0m0.018s

sys     0m0.009s

real    0m0.025s

user    0m0.023s

在入口测试下,可以看到PHP和PHP7没有太大的区别,但PHP7还是稍微快一点。

(二)框架逻辑测试
在框架入口复用第一步的逻辑:


<?php
namespace app\index\controller;
 
class Index
{
    public function index()
    {
       $arr = array();
       for ($i = 0; $i < 500000; $i++) {
           $arr[$i] = $i;
       }
 
       $tmp = array();
       foreach ($arr as $i) {
           if ($i % 2 == 0) {
               $is_exists = array_key_exists($i, $arr);
               if ($is_exists) {
                   array_push($tmp, $i);
               }
          }
      }
    }
}

PHP5版本:

time /usr/bin/php ./public/index.php

real    0m0.538s

user    0m0.463s

sys     0m0.072s

real    0m0.454s

user    0m0.386s

sys     0m0.065s

real    0m0.387s

user    0m0.331s

PHP7版本:

time /usr/local/php7/bin/php ./public/index.php

real    0m0.150s

user    0m0.123s

sys     0m0.024s

real    0m0.137s

user    0m0.105s

sys     0m0.031s

real    0m0.123s

user    0m0.096s

在thinkphp框架中使用PHP7版本,性能提升大约是PHP5版本的4倍!

laravel

然后我们测试下现在最火热的PHP艺术家的框架。

(一) 框架入口测试
PHP5版本:

time /usr/bin/php ./public/index.php

real    0m0.104s

user    0m0.081s

sys     0m0.022s

real    0m0.148s

user    0m0.122s

sys     0m0.025s

real    0m0.122s

user    0m0.100s

PHP版本

time /usr/local/php7/bin/php ./public/index.php

real    0m0.079s

user    0m0.064s

sys     0m0.015s

real    0m0.081s

user    0m0.067s

sys     0m0.014s

real    0m0.067s

user    0m0.054s

我们可以看到laravel的框架入口测试中,PHP5和PHP7的表现差异不大,但即使PHP5最高快的0.081s也比PHP7版本最慢的0.067s要慢。所以PHP7还是更胜一筹。

(二)框架逻辑测试
尝试增加一点逻辑,和thinkphp一样,复用测试逻辑。
首先修改laravel路由,直接调用UserController的index方法:


Route::get('/', 'UserController@index');

在index方法中写入测试逻辑:


public function index()
{
      $arr = array();
       for ($i = 0; $i < 500000; $i++) {
           $arr[$i] = $i;
       }
 
       $tmp = array();
       foreach ($arr as $i) {
           if ($i % 2 == 0) {
               $is_exists = array_key_exists($i, $arr);
               if ($is_exists) {
                   array_push($tmp, $i);
               }
          }
      }
}

PHP5版本

time /usr/bin/php ./public/index.php

real    0m0.510s

user    0m0.377s

sys     0m0.079s

real    0m0.627s

user    0m0.447s

sys     0m0.091s

real    0m0.519s

user    0m0.436s

PHP7版本

time /usr/local/php7/bin/php ./public/index.php

real    0m0.201s

user    0m0.167s

sys     0m0.032s

real    0m0.216s

user    0m0.174s

sys     0m0.040s

real    0m0.169s

user    0m0.134s

PHP7性能提升了3到4倍

结论

本文对PHP7和PHP5进行简单对比,性能确实有3到4倍提升,无论是在php纯脚本中,还是在框架中,PHP7高性能的表现都是一致的。

PHP7很快,PHP7+OpCache飞快,PHP7确实厉害,PHP的新时代已来临,赶紧用起来!

以上就是php7和php5的详细对比的详细内容,更多关于php7和php5对比的资料请关注编程网其它相关文章!

--结束END--

本文标题: php7和php5的详细对比

本文链接: https://www.lsjlt.com/news/123992.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php7和php5的详细对比
    目录PHP7安装两个PHP版本PHP7和PHP5的对决1. 纯php脚本测试2.php数据库操作测试3.PHP框架测试结论PHP7 PHP7正式发布到现在已经一年半了,刚出道就号称比...
    99+
    2022-11-12
    php 对比 php7 php5
  • php7和PHP5对比有什么区别
    这篇文章主要介绍php7和PHP5对比有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php7和PHP5对比的新特性和性能优化1. 抽象语法树(AST)AST在PHP编译过程作为一个中间件的角色,替换原来直接...
    99+
    2023-06-14
  • 详细分析PHP7与PHP5区别
    1、php标量类型和返回类型声明 #主要分为两种模式,强制性模式和严格模式 declare(strict_types=1) #1表示严格类型校验模式,作用于函数调用和返回语句;0...
    99+
    2022-11-12
    PHP7与PHP5区别 PHP7与PHP5区别分析
  • 详细对比Ember.js和Vue.js
    目录概述为什么要选择框架?Vue.jsEmber.jsEmber.js Vue.js对比总结概述 JavaScript最初是为Web应用程序创建的。但是随着前端技术的发展,大多数开发...
    99+
    2022-11-12
    JS 框架 JS Ember JS Vue
  • 关于PHP5和PHP7中数组实现方式的比较总结
    目录⒈数据结构⒉添加/修改元素⒊删除元素⒋数组遍历⒌hash碰撞⒍扩容⒎PHP7中的packedhashtable总结从 PHP 5 到 PHP 7 ,PHP 通过对 hashtab...
    99+
    2022-11-12
    php5和php7的区别 php中的数组 php5和php7的语法区别
  • php7和php5的区别是什么
    本篇文章为大家展示了php7和php5的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Per...
    99+
    2023-06-14
  • Kotlin中?和!!的区别详细对比
    前言 很多同学刚上手使用Kotlin知道它有针对Java NullPointerException的管理,而在Kotlin中?和!!均是和NullPointerExcepti...
    99+
    2022-11-12
    kotlin应用 kotlin ? !! 区别
  • 详解PHP7开启OPcache和Swoole性能的提升对比
    目录前期准备不开启opcache和laravel开启OPcache使用swoole加速包总结前期准备 测试所用的主机为虚拟机,虚拟机配置在双核4GB的个人电脑中。虚拟机系统为linu...
    99+
    2022-11-12
    php opcache php swoole
  • Java与kotlin详细对比
    在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。 为什么选择 Kotlin? 简洁: 大大减少样板代码的数量。 安全: 避免...
    99+
    2022-11-12
    Java与kotlin Java与kotlin对比
  • Python详细对比讲解break和continue区别
    目录前言break例子continue例子对比前言 最近在回答问答python区的问题的时候,发现很多人对于这个break和continue分不清。所以,今天我就写篇文章来讲一下(绝...
    99+
    2022-11-11
    Python break Python continue
  • 详细对比:zxmind git哪个好?
    随着开源软件的普及,越来越多的人开始了解和使用版本控制工具。Git 是目前最流行的版本控制工具之一,同时也是最受欢迎的开源工具之一。如果你正在寻找一个好用的Git工具,那么你肯定会听说过ZXmind和Git。那么ZXmind和Git哪一个更...
    99+
    2023-10-22
  • python 3.7和3.8哪个版本好【详细对比】
    其实很多人想知道python软件哪个版本好用,工欲善其事必先利其器,这是能理解的,下面小编个大家详细对比一下,python 3.7和3.8哪个版本好。 1、python安装成功为什么不能用 原因如下: 安装时没有勾选Add Python...
    99+
    2023-09-18
    windows 开发语言
  • 探讨PHP7和PHP5在语法上的不同之处
    PHP是一种广泛使用的服务器端编程语言,被用于开发动态网站和应用程序。近些年,PHP7的发布引起了一些关注。PHP7比之前的版本(如PHP5)有很多改进和优化。在本文中,我们将探讨PHP7和PHP5在语法上的不同之处。效率和性能提高最大的不...
    99+
    2023-05-14
    php php7 PHP5
  • PHP5和PHP7的垃圾回收机制有哪些区别
    这篇文章主要为大家展示了“PHP5和PHP7的垃圾回收机制有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP5和PHP7的垃圾回收机制有哪些区别”这篇文章吧。php5和php7的垃圾...
    99+
    2023-06-20
  • PHP7和PHP5在语法上的不同之处是什么
    这篇文章主要介绍了PHP7和PHP5在语法上的不同之处是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP7和PHP5在语法上的不同之处是什么文章都会有所收获,下面我们一起来看看吧。效率和性能提高最大的不...
    99+
    2023-07-05
  • PHP5和PHP7之间关于获取函数的区别是什么
    本篇内容主要讲解“PHP5和PHP7之间关于获取函数的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP5和PHP7之间关于获取函数的区别是什么”吧!PHP5和PHP7取数组元素作动...
    99+
    2023-06-25
  • PHP5和PHP7之间有哪些关于获取函数的区别
    这篇文章主要讲解了“PHP5和PHP7之间有哪些关于获取函数的区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP5和PHP7之间有哪些关于获取函数的区别”吧!在 PHP5 和 PHP7...
    99+
    2023-06-25
  • 【PHP面试题44】PHP5的版本和PHP7之间有哪些区别
    文章目录 一、前言二、底层调整2.1性能提升2.2 新的引擎2.3 数据类型改进2.4 错误处理改进2.5 语言特性增加 三、应用层差异3.1 兼容性3.2 类和方法改进3.3 错误处理机...
    99+
    2023-10-04
    PHP PHP7 PHP5
  • Mybatis详细对比一级缓存与二级缓存
    目录基本要点1、缓存2、一级缓存(默认开启,无法关闭)3、二级缓存4、缓存查询原理基本要点 1、缓存 什么是缓存? 存在内存中的临时数据,我们可以把用户经常查询的数据存放到缓存中,当...
    99+
    2022-11-13
    Mybatis一级缓存 Mybatis二级缓存
  • 详细比对15款 Python 编辑器,请择优选用!
    写 Python 代码最好的方式莫过于使用集成开发环境(IDE)了。它们不仅能使你的工作更加简单、更具逻辑性,还能够提升编程体验和效率。每个人都知道这一点。而问题在于,如何从众多选项中选择最好的 Python 开发环境。初级开发者往往面临这...
    99+
    2023-05-14
    编辑器 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作