搜尋
首頁後端開發PHP7介紹php7和php5對比

介紹php7和php5對比

Jan 15, 2021 am 09:47 AM
php5php7

介紹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 -vPHP 7.1.5 (cli) (built: May 13 2017 23:36:41) ( NTS )Copyright (c) 1997-2017 The PHP GroupZend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

PHP5:

# /usr/bin/php -vPHP 5.6.30 (cli) (built: Jan 19 2017 22:31:39)Copyright (c) 1997-2016 The PHP GroupZend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

環境說明:為了確保最佳的測試效果,本次測試在直接在生產環境進行,更逼近真實情況。
作業系統:CentOS 7.2 64位元
基礎配置:1核心1GB 1Mbps
主機品牌:騰訊雲端

PHP7與PHP5的對決

#PHP7與PHP5的對決

#1. 純php腳本測試

vim test.php

$arr = array();for ($i = 0; $i PHP5版本測試:<p></p><pre class="brush:php;toolbar:false">time /usr/bin/php test.php real    0m0.301suser    0m0.239ssys     0m0.050s--------------------------time /usr/bin/php test.phpreal    0m0.310suser    0m0.241ssys     0m0.054s--------------------------time /usr/bin/php test.phpreal    0m0.289suser    0m0.238ssys     0m0.050s
PHP7版本測試:
time /usr/local/php7/bin/php test.phpreal    0m0.087suser    0m0.063ssys     0m0.024s-------------------------------------time /usr/local/php7/bin/php test.phpreal    0m0.106suser    0m0.073ssys     0m0.033s--------------------------------------time /usr/local/php7/bin/php test.phpreal    0m0.083suser    0m0.061ssys     0m0.022s
透過資料可以看出來,單純的php腳本測試,可以看出php7效能提升了3到4倍。

2.php資料庫操作測試

#首先我們建立一個使用者表:

Table: test_userCreate 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 pdopdo_mysqlpdo_sqlite/usr/local/php7/bin/php -m|grep pdopdo_mysqlpdo_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><p>";}$sql = "select  SQL_NO_CACHE * from test_user;";$tmp = array();for ($i=1; $iquery($sql);foreach ($ret as $row) {$tmp['id']   = $row['id'];$tmp['name'] = $row['name'];}}</p>
PHP5測試test_db.php:

time /usr/bin/php test_db.phpreal    0m48.396suser    0m11.149ssys     0m3.998sreal    0m51.447suser    0m11.800ssys     0m4.395sreal    0m51.517suser    0m11.733ssys     0m4.439s
PHP7測試test_db.php:
real    0m47.900suser    0m9.875ssys     0m4.130sreal    0m46.977suser    0m9.760ssys     0m3.983sreal    0m50.010suser    0m10.268ssys     0m4.307s
這次腳本執行了50w次查詢,user執行時間PHP7執行的腳本幾乎都比PHP5少一秒!是少一秒不是一毫秒。
  • 3.PHP框架測試

thinkphp

  • 國內肯定是首選thinkphp框架,選擇最新的thinkphp5。我這裡直接在官網下載的thinkphp5.0.9版本。

(一)框架入口測試

PHP5下的測試:
    time /usr/bin/php ./public/index.phpreal    0m0.036suser    0m0.026ssys     0m0.010sreal    0m0.038suser    0m0.026ssys     0m0.012sreal    0m0.041suser    0m0.032ssys     0m0.009s
  • PHP7下的測試:

    time /usr/local/php7/bin/php ./public/index.phpreal    0m0.027suser    0m0.021ssys     0m0.005sreal    0m0.027suser    0m0.018ssys     0m0.009sreal    0m0.025suser    0m0.023ssys     0m0.002s

    在入口測試下,可以看到PHP和PHP7沒有太大的差別,但PHP7還是稍微快一點。
  • (二)框架邏輯測試

    在框架入口中重複使用第一步的邏輯:

    <?phpnamespace  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.phpreal    0m0.538suser    0m0.463ssys     0m0.072sreal    0m0.454suser    0m0.386ssys     0m0.065sreal    0m0.387suser    0m0.331ssys     0m0.055s
    • PHP7版本:

      time /usr/local/php7/bin/php ./public/index.phpreal    0m0.150suser    0m0.123ssys     0m0.024sreal    0m0.137suser    0m0.105ssys     0m0.031sreal    0m0.123suser    0m0.096ssys     0m0.026s
      在thinkphp框架中使用PHP7版本,效能提升大約是PHP5版本的4倍!
    • laravel


      • #然後我們測試下現在最火熱的PHP藝術家的框架。

      (一) 框架入口測試

      PHP5版本:

        #
      time /usr/bin/php ./public/index.phpreal    0m0.104suser    0m0.081ssys     0m0.022sreal    0m0.148suser    0m0.122ssys     0m0.025sreal    0m0.122suser    0m0.100ssys     0m0.021s
    • PHP版本

      time /usr/local/php7/bin/php ./public/index.phpreal    0m0.079suser    0m0.064ssys     0m0.015sreal    0m0.081suser    0m0.067ssys     0m0.014sreal    0m0.067suser    0m0.054ssys     0m0.013s

      我們可以看到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 PHP5版本<p></p><pre class="brush:php;toolbar:false">time /usr/bin/php ./public/index.phpreal    0m0.510suser    0m0.377ssys     0m0.079sreal    0m0.627suser    0m0.447ssys     0m0.091sreal    0m0.519suser    0m0.436ssys     0m0.079s
      PHP7版本
      time /usr/local/php7/bin/php ./public/index.phpreal    0m0.201suser    0m0.167ssys     0m0.032sreal    0m0.216suser    0m0.174ssys     0m0.040sreal    0m0.169suser    0m0.134ssys     0m0.034s
      PHP7效能提升了3到4倍

      壓力測試

      • 1000個請求,50個並發

      PHP5版本:

      #三次樣本如下:

      • #PHP7版本:

      ###############

      透過壓力測試,在PHP7版本下,可以看到單一請求時間和請求完成時間以及每個連接請求實際運行時間的平均值都耗時更少,最重要的效能指標QPS也是高於PHP5的版本。

      PHP7的opcache效能測試

      開啟opcache:


      ##臥槽!開啟了opcache的PHP7果然是要起飛的節奏,相比未開啟的PHP7性能提升了十幾倍,相比PHP5提升了將進20倍!問你怕不怕!

      PHP腳本測試資料如下:

       

      #PHP7 vs PHP5

      純php腳本測試過程,PHP7效能大約是PHP5的3到4倍。

      壓力測試資料如下:

      PHP5 vs PHP7 vs PHP7 OPCACHE

      結論:

      本文對PHP7和PHP5進行簡單對比,效能確實有3到4倍提升,無論是在php純腳本中,或是在框架中,PHP7高效能的表現都是一致的。

      PHP7很快,PHP7 OpCache飛快,PHP7確實牛逼,PHP的新時代已來臨,趕緊用起來!

      以上是介紹php7和php5對比的詳細內容。更多資訊請關注PHP中文網其他相關文章!

      陳述
      本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除

      熱AI工具

      Undresser.AI Undress

      Undresser.AI Undress

      人工智慧驅動的應用程序,用於創建逼真的裸體照片

      AI Clothes Remover

      AI Clothes Remover

      用於從照片中去除衣服的線上人工智慧工具。

      Undress AI Tool

      Undress AI Tool

      免費脫衣圖片

      Clothoff.io

      Clothoff.io

      AI脫衣器

      AI Hentai Generator

      AI Hentai Generator

      免費產生 AI 無盡。

      熱門文章

      R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
      4 週前By尊渡假赌尊渡假赌尊渡假赌
      R.E.P.O.最佳圖形設置
      4 週前By尊渡假赌尊渡假赌尊渡假赌
      R.E.P.O.如果您聽不到任何人,如何修復音頻
      4 週前By尊渡假赌尊渡假赌尊渡假赌
      R.E.P.O.聊天命令以及如何使用它們
      4 週前By尊渡假赌尊渡假赌尊渡假赌

      熱工具

      DVWA

      DVWA

      Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

      SublimeText3漢化版

      SublimeText3漢化版

      中文版,非常好用

      MantisBT

      MantisBT

      Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

      SublimeText3 英文版

      SublimeText3 英文版

      推薦:為Win版本,支援程式碼提示!

      mPDF

      mPDF

      mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),