目次
2 つの PHP バージョンをインストールする
PHP7 と PHP5 の対決
1. 純粋な php スクリプト テスト
2.php データベース操作テスト
3.PHP フレームワーク テスト
thinkphp
laravel
ホームページ バックエンド開発 PHP7 PHP7 は本当に強力ですか?

PHP7 は本当に強力ですか?

Jul 07, 2021 am 09:38 AM
php7

PHP7 が正式リリースされてから 1 年半が経ちましたが、登場当初は旧バージョンに比べて数倍高速化したと言われていました PHP7 上で動作するさまざまなオープンソース フレームワークやシステムの速度と効率とにかくメディアも開発者もみんな炎上を煽っている、いや称賛に満ちているはずだ。今日はそれをテストして効果を確認します。

PHP7 は本当に強力ですか?

PHP7 が正式にリリースされてから 1 年半が経過しましたが、最初にリリースされたときは、古いバージョンよりも数倍高速であると言われていました。 PHP7で高速かつ高効率に動作するソースフレームワークやシステムは数倍に増えており、とにかくメディアも開発者も炎上を煽っていて、いや、賞賛の声が溢れているはずだ。

私は何も言わずにただ静かに見守るだけです。

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

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

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

http://php.net/ 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 &#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 | +-----+------+
ログイン後にコピー

Createデータベース テスト スクリプト 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[&#39;id&#39;] = $row[&#39;id&#39;]; 
        $tmp[&#39;name&#39;] = $row[&#39;name&#39;]; 
        } 
    }
ログイン後にコピー

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 フレームワークが第一の選択肢であり、最新のものを選択してくださいphp5 を考えてください。 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(&#39;/&#39;, &#39;UserController@index&#39;);
ログイン後にコピー

インデックス メソッドにテスト ロジックを記述します:

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 倍向上しました

推奨学習:

php ビデオ チュートリアル

結論:

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

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

以上がPHP7 は本当に強力ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

php7がTCPポートが機能していないことを検出した場合の問題を解決する方法 php7がTCPポートが機能していないことを検出した場合の問題を解決する方法 Mar 22, 2023 am 09:30 AM

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

php7.0 にプラグインがインストールされているのに、まだインストールされていないと表示される場合はどうすればよいですか? php7.0 にプラグインがインストールされているのに、まだインストールされていないと表示される場合はどうすればよいですか? Apr 02, 2024 pm 07:39 PM

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

php7.0にmongo拡張機能をインストールする方法 php7.0にmongo拡張機能をインストールする方法 Nov 21, 2022 am 10:25 AM

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

PHP サーバー環境 FAQ ガイド: 一般的な問題を迅速に解決する PHP サーバー環境 FAQ ガイド: 一般的な問題を迅速に解決する Apr 09, 2024 pm 01:33 PM

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

php7.0のインストールとデプロイ方法 php7.0のインストールとデプロイ方法 Nov 30, 2022 am 09:56 AM

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

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

php8 と php7 ではどちらが優れていますか? php8 と php7 ではどちらが優れていますか? Nov 16, 2023 pm 03:09 PM

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

Docker環境にPECLを使用して拡張機能をインストールするときにエラーが発生するのはなぜですか?それを解決する方法は? Docker環境にPECLを使用して拡張機能をインストールするときにエラーが発生するのはなぜですか?それを解決する方法は? Apr 01, 2025 pm 03:06 PM

エラーの原因とソリューションPECLを使用してDocker環境に拡張機能をインストールする場合、Docker環境を使用するときに、いくつかの頭痛に遭遇します...

See all articles