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);}}}
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
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
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
insert into test_user (uid,name) values (1,"dada");MariaDB [test]> select * from test_user;+-----+------+| uid | name |+-----+------+| 1 | dada |+-----+------+
/usr/bin/php -m|grep pdopdo_mysqlpdo_sqlite/usr/local/php7/bin/php -m|grep pdopdo_mysqlpdo_sqlite
$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'];}}
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
real 0m47.900suser 0m9.875ssys 0m4.130sreal 0m46.977suser 0m9.760ssys 0m3.983sreal 0m50.010suser 0m10.268ssys 0m4.307s
3.PHP フレームワーク テスト
thinkphp
- (1) フレームワークエントリテスト
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
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
- (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);}}}}}
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
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
laravel
- (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
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
- (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);}}}}
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
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
ストレス テスト
1000 リクエスト、 50 同時実行
- PHP5 バージョン:
PHP7 バージョンでのストレス テストを通じて、単一リクエスト時間とリクエスト完了時間の平均、および各接続リクエストの実際の実行時間が確認できます。最も重要なことは、パフォーマンス指標 QPS も PHP5 バージョンよりも高いということです。
PHP7 の Opcache パフォーマンス テスト
opcache を有効にする:
PHP スクリプト テスト データは次のとおりです:
PHP7 対 PHP5
純粋な PHP スクリプト テスト プロセス、 PHP7のパフォーマンス PHP5の約3~4倍。
ストレス テスト データは次のとおりです:
PHP5 対 PHP7 対 PHP7 OPCACHE
結論:以上がphp7とphp5の比較を紹介します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

php5 と php8 の違いは、パフォーマンス、言語構造、型システム、エラー処理、非同期プログラミング、標準ライブラリ関数、セキュリティの点です。詳細な紹介: 1. パフォーマンスの向上. PHP5 と比較して、PHP8 はパフォーマンスが大幅に向上しています. PHP8 では、高頻度の実行コードをコンパイルおよび最適化できる JIT コンパイラーが導入されており、それによって実行速度が向上しています; 2. 言語構造の改善、 PHP8 では、いくつかの新しい言語構造と関数が導入されており、PHP8 では名前付きパラメータがサポートされており、開発者はパラメータの順序などの代わりにパラメータ名を渡すことができます。

php5 では、fsockopen() 関数を使用して TCP ポートを検出できます。この機能を使用して、ネットワーク接続を開き、ネットワーク通信を実行できます。ただし、php7 では、fsockopen() 関数でポートを開けない、サーバーに接続できないなどの問題が発生する可能性があります。この問題を解決するには、socket_create() 関数とsocket_connect() 関数を使用して TCP ポートを検出します。

PHP 7.0 でインストールされているプラグインが表示されない問題を解決するには: プラグインの設定を確認し、プラグインを有効にします。 PHP を再起動して、構成の変更を適用します。プラグイン ファイルの権限をチェックして、それらが正しいことを確認します。不足している依存関係をインストールして、プラグインが適切に機能することを確認します。他のすべての手順が失敗した場合は、PHP を再構築します。他に考えられる原因としては、プラグインのバージョンに互換性がない、間違ったバージョンをロードしている、PHP 構成の問題などが挙げられます。

php7.0 に mongo 拡張機能をインストールする方法: 1. mongodb ユーザー グループとユーザーを作成します; 2. mongodb ソース コード パッケージをダウンロードし、ソース コード パッケージを "/usr/local/src/" ディレクトリに配置します; 3. 「src/」ディレクトリに入ります; 4. ソースコードパッケージを解凍します; 5. mongodb ファイルディレクトリを作成します; 6. ファイルを「mongodb/」ディレクトリにコピーします; 7. mongodb 設定ファイルを作成して設定を変更します。

php5 でポート 80 を変更する方法: 1. Apache サーバー設定ファイルのポート番号を編集します; 2. PHP 設定ファイルを編集して、PHP が新しいポートで動作することを確認します; 3. Apache サーバーを再起動すると、PHP アプリケーションが起動します。新しいポートで実行を開始します。ポートで実行します。

php7.0 をインストールおよび展開する方法: 1. PHP 公式 Web サイトにアクセスして、ローカル システムに対応するインストール バージョンをダウンロードします; 2. ダウンロードした zip ファイルを指定したディレクトリに解凍します; 3. コマンド ライン ウィンドウを開いて、次のリンクに移動します。 「E:\php7」ディレクトリ 「php -v」コマンドを実行するだけです。

PHP サーバー環境の一般的な解決策には、正しい PHP バージョンがインストールされていること、および関連ファイルがモジュール ディレクトリにコピーされていることを確認することが含まれます。 SELinux を一時的または永続的に無効にします。 PHP.ini をチェックして構成し、必要な拡張機能が追加され、正しく設定されていることを確認します。 PHP-FPM サービスを開始または再起動します。 DNS 設定に解決の問題がないか確認してください。

PHP7 と比較すると、PHP8 にはパフォーマンス、新機能と構文の改善、型システム、エラー処理と拡張機能の点でいくつかの利点と改善点があります。ただし、どのバージョンを使用するかは、特定のニーズとプロジェクトの状況によって異なります。詳細な紹介: 1. パフォーマンスの向上、PHP8 はコードの実行速度を向上できるジャストインタイム (JIT) コンパイラーを導入します; 2. 新機能と構文の改善、PHP8 は名前付きパラメーターとオプションのパラメーターの宣言をサポートします。関数の作成 呼び出しがより柔軟になり、匿名クラス、プロパティの型宣言などが導入されています。
