この記事では、php7 と php5 の違いについて紹介します。 php5とphp7の比較はある程度参考になるので、困っている方は参考にしていただければ幸いです。
PHP7来一投稿
PHP7 が正式にリリースされてから 1 年半が経過しました。デビューしたとき、PHP7 は、旧バージョンだったり、各種オープンソースフレームワークだったり、PHP7で動作するシステムの速度や効率が何倍にも向上したり、とにかくメディアも開発者も炎上を煽っていて、いや、賞賛の声が溢れているはずだ。
私は何も言わずに、ただ静かにあなたのショーを見守ります。
一般的に、罠にはまりたくないので、私は携帯電話システムをアップグレードする最後の人です。結局のところ、最もハッキングされた言語は言うまでもなく、iOS や Android のようなシステムにはバグが存在します。世界で。
今日は、PHP7 が伝説どおりに素晴らしいかどうかを確認するときが来ました。
2 つの PHP バージョンをインストールする
http://www.php.cn/ 最新バージョンの PHP7 はすでに入手可能であり、自分でダウンロードできます。
PHP5 と PHP7 (PHP6 は放棄され、苦境に立たされました) のパフォーマンスをテストするために、2 つの 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 Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
PHP5:
# /usr/bin/php -v PHP 5.6.30 (cli) (built: Jan 19 2017 22:31:39) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
環境の説明: 最良のテスト効果を保証するために、このテストは運用環境に近い環境で直接実行されます。本当の状況。
オペレーティング システム: CentOS 7.2 64 ビット
基本構成: 1 コア 1GB 1Mbps
ホスト ブランド: Tencent Cloud
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 sys 0m0.050s
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 sys 0m0.022s
データから、純粋な 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
私の 2 つの PHP バージョンには PDO がインストールされています (php_mysql 拡張機能はもう使用しないでください。これは時代遅れで、PHP7 は完全に放棄されており、mysqli は推奨されません)。
次に、PDO を使用して、選択実行のパフォーマンス比較を 500,000 回テストするスクリプトを作成します。
$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 sys 0m4.439s
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 sys 0m4.307s
今回、スクリプトは 500,000 クエリを実行しました。PHP7 で実行されたスクリプトのユーザー実行時間は、PHP5 よりもほぼ 1 秒短縮されました。 1ミリ秒ではなく、1秒減ります。
3. PHP フレームワーク テスト
thinkphp
国内の肯定これが thinkphp フレームワークの第一選択であり、最新の thinkphp5 を選択してください。 thinkphp5.0.9 バージョンを公式 Web サイトから直接ダウンロードしました。
(1) フレームワークエントリテスト
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 sys 0m0.009s
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 sys 0m0.002s
入学テストでは、PHP と PHP7 に大きな違いはありませんが、それでも PHP7 の方がわずかに速いことがわかります。
(2) フレームワークロジックテスト
フレームワーク入口の最初のステップのロジックを再利用します:
<?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 sys 0m0.055s
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 sys 0m0.026s
thinkphp フレームワークで PHP7 バージョンを使用する場合、 PHP5バージョンと比べて約4倍のパフォーマンス向上!
laravel
次に、最も人気のある PHP アーティスト フレームワークをテストします。
(1) フレームワークエントリーテスト
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 sys 0m0.021s
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 sys 0m0.013s
laravel フレームワークのエントリー テストでは、PHP5 と PHP7 のパフォーマンスの差は大きくないことがわかりますが、 PHP5 は最速です。0.081 秒は、最も遅い PHP7 バージョンの 0.067 秒よりも遅いです。したがって、PHP7 の方がまだ優れています。
(2) フレームワークロジックテスト
thinkphp などの小さなロジックを追加して、テスト ロジックを再利用してみてください。
まず、laravel ルーティングを変更し、UserController のインデックス メソッドを直接呼び出します:
Route::get('/', 'UserController@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 sys 0m0.079s
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 sys 0m0.034s
PHP7 のパフォーマンスが 3 ~ 4 倍向上しました
############ くそ! opcache をオンにした PHP7 はまさに離陸寸前で、オンにしていない PHP7 と比較すると 10 倍以上、PHP5 と比較すると 20 倍近くパフォーマンスが向上しています。怖いか聞いてください!
PHP スクリプト テスト データは次のとおりです:
PHP7 と PHP5.png
純粋な PHP スクリプト テスト プロセス、PHP7 のパフォーマンスは約PHP5 3~4回。
ストレス テストのデータは次のとおりです: ##PHP5 vs PHP7 vs PHP7 OPCACHE.png結論:この記事は「PHP7 と PHP5 を単純に比較すると、確かにパフォーマンスが 3 ~ 4 倍向上していることがわかります。PHP 純粋なスクリプトでもフレームワークでも、PHP7 の高いパフォーマンスは一貫しています。」
PHP7 は高速です。PHP7 OpCache は高速です。PHP7 は本当に素晴らしいです。PHP の新時代が到来しました。すぐに使ってください。
おすすめ関連記事:
PHP の時間関数 strtotime() の原理の説明 PHP の ts と nts の比較PHP以上がphp7とphp5の違いは何ですか? php5とphp7の比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。