序文
私は個人的にまだ 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 サイトの他の関連記事を参照してください。