我的编程空间,编程开发者的网络收藏夹
学习永远不晚

php7和php5的详细对比

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

php7和php5的详细对比

PHP7

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

一般手机系统升级我是跑最后的,因为不愿意踩坑,毕竟iOS和Android这种系统都会出现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对比的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

php7和php5的详细对比

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

下载Word文档

猜你喜欢

php7和PHP5对比有什么区别

这篇文章主要介绍php7和PHP5对比有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php7和PHP5对比的新特性和性能优化1. 抽象语法树(AST)AST在PHP编译过程作为一个中间件的角色,替换原来直接
2023-06-14

php7和php5的区别是什么

本篇文章为大家展示了php7和php5的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Per
2023-06-14

PHP基础 namespace PHP7 和 PHP5的不同

php自5.3版本开始引入命名空间的概念,其关键字为namespace——定义命名空间,还有use——使用命名空间的某个应用。简单来说,命名空间就是一种封装事物的方法。可以类比于操作系统中的文
PHP基础 namespace PHP7 和 PHP5的不同
2024-02-27

PHP5和PHP8的性能和安全性:对比和改进

PHP是一种广泛应用的服务器端脚本语言,用于开发Web应用程序。它已经发展了多个版本,而本文将主要讨论PHP5和PHP8之间的比较,特别关注其在性能和安全性方面的改进。首先让我们来看看PHP5的一些特点。PHP5是在2004年发布的,它引
PHP5和PHP8的性能和安全性:对比和改进
2024-01-26

PHP7 中 include、require 相对于PHP5你所不知道的一些

做PHP开发的小伙伴们对include和require的区别肯定都非常熟悉。二者几乎没有什么不同,只是在对错误的处理方式上不一样,require会产生一个致命的错误终止整个脚本的运行;而include则会产生一个警告,程序会继续向下执行。当
PHP7 中 include、require 相对于PHP5你所不知道的一些
2024-02-27

PHP框架的比较:优缺点详细对比

最佳 php 框架选择:laravel:全功能、高效 orm、活跃社区(适用于大型项目)codeigniter:轻量级、可扩展、易于理解(适用于小型项目)symfony:组件化、行业标准、高安全性(适用于高度可扩展的项目)zend fram
PHP框架的比较:优缺点详细对比
2024-05-23

PHP5和PHP7的垃圾回收机制有哪些区别

这篇文章主要为大家展示了“PHP5和PHP7的垃圾回收机制有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP5和PHP7的垃圾回收机制有哪些区别”这篇文章吧。php5和php7的垃圾
2023-06-20

详细对比:zxmind git哪个好?

随着开源软件的普及,越来越多的人开始了解和使用版本控制工具。Git 是目前最流行的版本控制工具之一,同时也是最受欢迎的开源工具之一。如果你正在寻找一个好用的Git工具,那么你肯定会听说过ZXmind和Git。那么ZXmind和Git哪一个更
2023-10-22

PHP7和PHP5在语法上的不同之处是什么

这篇文章主要介绍了PHP7和PHP5在语法上的不同之处是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP7和PHP5在语法上的不同之处是什么文章都会有所收获,下面我们一起来看看吧。效率和性能提高最大的不
2023-07-05

Go语言和Java的特性与应用场景的详细对比

Go语言与Java:特性与应用场景概述Go语言和Java都是流行的编程语言,但它们在设计和应用场景上存在着一些差异。Go语言由Google开发,于2009年发布,而Java由Sun Microsystems开发,于1995年发布。特性
Go语言和Java的特性与应用场景的详细对比
2024-02-01

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录