ホームページ  >  記事  >  バックエンド開発  >  php7とphp5の比較を紹介します。

php7とphp5の比較を紹介します。

coldplay.xixi
coldplay.xixi転載
2021-01-15 09:47:231970ブラウズ

php7とphp5の比較を紹介します。

推奨事項 (無料): PHP7

PHP7 が登場したとき、非常に優れていると言われました。時代に合わせて、PHP7 で動作するさまざまなオープンソース フレームワークやシステムの速度と効率は数倍に向上しており、とにかくメディアも開発者も炎上を煽り、いや、賞賛に満ちているはずです。
私は何も言わずにただ静かに見守るだけです。

一般的に、罠にはまりたくないので、私は携帯電話システムをアップグレードする最後の人です。結局のところ、最もハッキングされた言語は言うまでもなく、iOS や Android のようなシステムにはバグが存在します。世界で。

今日は、PHP7 が伝説どおりに素晴らしいかどうかを確認するときが来ました。

2 つの PHP バージョンをインストールする

http://php.net/ PHP7 の最新バージョンはすでに存在しており、自分でダウンロードできます。
PHP5 と PHP7 (PHP6 は放棄され、苦境に立たされました) のパフォーマンスをテストするために、2 つの 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
ホスト ブランド: 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.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 &#39;&#39;,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
私の 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.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
今回、スクリプトは 500,000 クエリを実行しました。PHP7 で実行されたスクリプトのユーザー実行時間は、PHP5 よりもほぼ 1 秒短縮されました。 1ミリ秒ではなく、1秒減ります。

3.PHP フレームワーク テスト

  • thinkphp

国内肯定これが thinkphp フレームワークの第一選択であり、最新の thinkphp5 を選択してください。 thinkphp5.0.9 バージョンを公式 Web サイトから直接ダウンロードしました。

  • (1) フレームワークエントリテスト

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 の方が若干速いことがわかります。

  • (2) フレームワーク ロジック テスト

    フレームワーク入口の最初のステップのロジックを再利用します:

<?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 アーティストのフレームワークをテストします。

  • (1) フレームワーク導入テスト

    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.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.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 バージョン:

3 つのサンプルは次のとおりです:

##PHP7 バージョン:

PHP7 バージョンでのストレス テストを通じて、単一リクエスト時間とリクエスト完了時間の平均、および各接続リクエストの実際の実行時間が確認できます。最も重要なことは、パフォーマンス指標 QPS も PHP5 バージョンよりも高いということです。

PHP7 の Opcache パフォーマンス テスト

opcache を有効にする:


##################### くそ! opcache をオンにした PHP7 はまさに離陸寸前で、オンにしていない PHP7 と比較すると 10 倍以上、PHP5 と比較すると 20 倍近くパフォーマンスが向上しています。怖いか聞いてください!

PHP スクリプト テスト データは次のとおりです:

PHP7 対 PHP5

純粋な PHP スクリプト テスト プロセス、 PHP7のパフォーマンス PHP5の約3~4倍。

ストレス テスト データは次のとおりです:

PHP5 対 PHP7 対 PHP7 OPCACHE

結論:

この記事では、PHP7 と PHP5 を単純に比較します。実際にパフォーマンスは 3 ~ 4 倍向上しており、PHP 純粋なスクリプトでもフレームワークでも、PHP7 の高いパフォーマンスは一貫しています。

PHP7 は高速です。PHP7 OpCache は高速です。PHP7 は本当に素晴らしいです。PHP の新時代が到来しました。すぐに使ってください。

以上がphp7とphp5の比較を紹介します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。