4

PHP 5.4.x の最新リリースがまもなく 5.5 になるため、かなりの数の新しい構文が導入されています。コードの読みやすさ、プログラマーによるタイピングの減少、バグ修正などの点で、それらの重要性を理解しています。

しかし、私は、これらの新しい構文を使用することで、パフォーマンスが (もしあれば) どれほど大幅に向上したかを特に知りたいと思っています。PHP インタープリターや Zend エンジンは、より多くの新しい構文が使用された場合、より高速/より優れたパフォーマンスを発揮しますか??

または、要点全体を見逃している可能性があります。これに関するあなたの専門知識と考えが必要です。ありがとうございました!

4

3 に答える 3

8

プログラムの記述を容易にし、コードの編成を容易にするために、新しい構文が言語に追加されます。一般に、パフォーマンスを向上させるためではありません。パフォーマンス上の理由で特定の構文を使用することを考えるべきではありませんが、コードがより良くなり、操作しやすくなり、読みやすくなるためです。

たとえば、PHP 5.5 では "Generator" 構文 (yieldキーワード) が導入されています。これは、イテレータを記述する改良された方法です。ただし、Iterator スタイルのコードを記述してもパフォーマンスに違いはありません。基本的には内部で同じことをしています。重要な点は、単純なジェネレーターを作成する方が、イテレーターを使用して同じコードを作成するよりもはるかに簡単だということです。コードはより短く、すっきりと理解しやすくなっています。実行速度は速くなりませんが、操作ははるかに簡単になります。それが要点です。

ただし、PHP には、リリースごとに言語のパフォーマンスが大幅に向上したという優れた実績があります。新しい機能を使用する必要さえありません。最新バージョンにアップグレードするだけで、既存のコードのパフォーマンスが向上します。場合によっては、パフォーマンスが 50% 以上向上することがあります。それを考えると、アップグレードは簡単です。新しい言語機能を使用できることは、パフォーマンスの向上に加えて追加のボーナスです。

それを証明するベンチマークはたくさんあります。これは、PHP v5.1 から 5.4 までをカバーする1 つの例です。

(おそらくまだ作業中であるため、v5.5 の適切なベンチマークはまだ見ていませんが、リリース後すぐにベンチマークが公開されることは間違いありません)

于 2013-01-03T15:19:07.917 に答える
0

確かではありませんが、新しい構文を使用することで大幅な改善が加えられるとは思えません。パーサーは、より簡潔な新しい構文をより速く解析する可能性がありますが、古いバージョンで行ったのとほぼ同じオペ コードを生成します。ここでの改善はほとんど目立たないことを意味します。

一方、新しいバージョンでは内部動作が改善されています。つまり、古いコードと新しいコードの両方が新しいエンジンでより適切に実行されます。

于 2013-01-03T15:26:33.913 に答える
0

これはシステムに依存しない質問です。走行距離は、実行している環境によって異なる場合があります。そうは言っても、「速い」かどうかを判断する決定的な方法はありません。特定の環境をテストするには、いくつかのコード プロファイリングを行い、5.4 コード サンプルと 5.5 コード サンプルの実行時間を確認する必要があります。

于 2013-01-03T15:17:31.050 に答える