検索
ホームページバックエンド開発PHP7PHP5.6と7.3、Tomcat7と8.5の速度比較

序文

私は個人的にまだ PHP5.6 を使用していますが、PHP7 はすでに強力な型指定をサポートしており、文字列に基づく呼び出しはサポートしていないため、7.3 は純粋にテスト用です。私の個人プロジェクトの PHP バージョンは 5.6 のままです。

最近試してみたいと思っています。PHP 5.6、7.3 と Tomcat 7、8、9 の速度はどうですか? 以前、PHP はデータベースの操作が速く、Java がビジネスを処理するという記事をいくつか読みました。 . ロジックの方が速いので、ビジネスロジックをJavaに引き継ぎ、データベース操作をPHPに引き継ぎたいと考えています。

しかし、この方法のほうが速いでしょうか?比較してみてください、データがそれを物語っています。

ちなみに、私はサーバー管理に Pagoda パネルを使用しており、サービス ソフトウェアのインストールはすべて Pagoda パネルで実行されます。

テストの序文

テスト中に、Tomcat7 と 8.5 の結果が似ていることがわかりました。9 でも同じ結果になると推定されます。 Tomcat9 はテストしません。 Tomcat 部分はビジネス ロジック処理の 7 と 8.5 のみをテストし、残りは 8.5

#サーバー構成のみをテストします## システム: CentOS Linux 7.6.1810 (コア)

#● Pagoda バージョン: 6.9.8

#● メーカー: Baidu Smart Cloud

#● タイプ: 集中コンピューティング ic3

● CPU: 1 コア

●メモリ:1GB

速度比較

ビジネスロジック処理速度

追加0 ~ 10000000

PHP5.6

<?php
$time_start = microtime(true);
 
$count = 0;
for ($i = 0; $i < 10000000; ++ $i) {
    $count += $i;
}
 
$time_end = microtime(true);
 
echo ($time_end - $time_start);  // 结果:0.34648394584656

結果: 0.34648394584656

PHP7.3

<?php
$time_start = microtime(true);
 
$count = 0;
for ($i = 0; $i < 10000000; ++ $i) {
    $count += $i;
}
 
$time_end = microtime(true);
 
echo ($time_end - $time_start);  // 结果:0.12653613090515

結果: 0.12653613090515結論: PHP7.3 はビジネス ロジック処理において 5.6 より 3 倍高速です

Tomcat7

<%
    java.util.Date d1 = new java.util.Date();
    long start_time = d1.getTime();  // 单位:毫秒
    
    long count = 0;
    for (long i = 0; i <= 10000000; ++ i) {
        count += i;
    }
    
    java.util.Date d2 = new java.util.Date();
    long end_time = d2.getTime();  // 单位:毫秒
    out.println(end_time - start_time);  // 结果:17毫秒
%>

結果: 17 ミリ秒、さらに数回更新すると、4 ~ 5 ミリ秒になります。主に 4 ミリ秒です。

Tomcat8.5

結果: さらに数回更新しても、99 ミリ秒になります。更新時間は 4 ミリ秒ビジネス ロジック テストの概要

結局のところ、Java は半コンパイルおよび半インタープリタ言語なので、高速であるのは普通のことです。PHP7 では 100 ミリ秒を超えますが、 PHP5 はわずか 300 ミリ秒と少し遅いです。

データベース IO テスト

PDO を使用して準備して実行し、テストします。

PHP5.6

# INSERT による 10,000 行の挿入: 37.575320005417 秒 # SELECT による 10,000 行の読み取り: 0.010236978530884 秒

##● SELECT ループによる 10,000 行の読み取り: 1.0460438728333 秒

# UPDATE 更新10,000 行: 0.04496788978 5767 秒

● 10,000 行を更新する UPDATE ループ: 36.463224887848 秒

# 10,000 行を削除する DELETE: 0.034432888031006 秒

##● 10,000 行を削除する DELETE ループs : 37.198384046555 秒

PHP7.3

● INSERT が 10,000 行を挿入: 33.949599027634 秒

##● SELECT が 10,000 行を読み取る: 0.021260023117065 秒

● SELECT ループで 10,000 行を読み取る: 1.0032389163971 秒 #● UPDATE で 10,000 行を更新: 0.040410995483398 秒

#● UPDATE ループで 10,000 行を更新: 36.759881019592 秒

# DELETE で 10,000 行を削除0 rows: 0.046122074127 197 秒

● 10,000 行を削除する DELETE ループ: 35.682950973511 秒

PHP の概要

: データベース IO にはバージョンの違いはほとんどなく、単一の実行ステートメントは、ループ内でステートメントを実行するより高速です

Tomcat8.5

コンパイル前の最初の実行、コンパイル後の 2 番目の実行

##● INSERT 10,000 行の挿入: コンパイル前: 39.738 秒、コンパイル後: 37.104 秒 # SELECT で 10,000 行を読み取る: コンパイル前: 0.079 秒、コンパイル後: 0.028 秒

## ● SELECT ループで 10,000 行を読み取る: コンパイル前: 2.303 秒、コンパイル後: 1.775 秒

# UPDATE で 10,000 行を更新: コンパイル前: 0.060 秒、コンパイル後: 0.040 秒

# UPDATE で 10,000 行をループで更新:コンパイル前: 43.326 秒、コンパイル後: 40.847 秒

#● DELETE で 10,000 行を削除: 最初の実行: 0.137 秒

#● DELETE ループで 10,000 行を削除: 最初の実行: 40.597 秒

まとめ

: Java には強力なビジネス ロジック機能がありますが、データベース IO 速度は PHP よりも遅く、PHP ではその逆が当てはまります。

ハイブリッド開発テスト

ビジネス ロジックは Java で記述され、PHP は CURL 経由で Java を呼び出し、テスト速度

結果: #最初のテスト: 0.51814317703247 秒

2 回目のテスト: 0.016547918319702 秒

概要:

最初のテストテストは Java 側をコンパイルする必要があるため時間がかかる場合がありますが、2 番目のテストはコンパイルする必要がないため、非常に高速です。

さらに数回テストを行った結果、満足のいく結果が得られ、速度は PHP7 よりも約 10 倍速くなりました。

混合開発のデメリットは、開発効率が高くなく、落とし穴が増える可能性があることだけですが、運用面では、それぞれに利点があります。

私個人としてはこれに対して中立の立場をとっており、推奨したり反対したりしません。さまざまなプロジェクトで関連するニーズがあり、この方法が最良の選択である可能性があるためです。

以上がPHP5.6と7.3、Tomcat7と8.5の速度比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はcsdnで複製されています。侵害がある場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター