動的コンテンツにかなり重点を置くWebサイトを作成することを計画しており、Webスタックの一部として最も賢明な選択は何かを知りたいと思っています。
現在、PHPを使用して動的コンテンツを配信するか、nginxをTomcatのプロキシとして使用し、サーブレットを使用して動的コンテンツを配信するかを決定しようとしています。
私はJava、JSP、サーブレットの経験が豊富なので、すぐにプラスになります。また、コンパイル言語であるため、PHP(暗黙的に ここ そのJavaは約37xです)よりも高速に実行されますPHPよりも高速)、Webページを作成高速にします。
PHPの経験はありませんが、簡単に手に入るという印象を受けています。 Javaより遅いですが、クライアントはnginxとしか通信しないので、動的に作成されたWebページをクライアントにservingすることになると思いますこの方法でより速く。
これらのことを考慮して、私は知りたいです:
PHP最終的に、最高のパフォーマンスが得られるのであれば、学習してもかまいません。その観点から、何が最良の選択であるかを知りたいだけです。
私の仮定は正しいですか?
完全ではありませんが、Tomcatの前でnginxを設定することは、nginxの「デフォルト」php-fpmを使用してCGIを実行しているPHP)でnginxを設定することとほとんど同じです。
Tomcatから動的コンテンツを転送および返すだけで、nginxの優れた静的コンテンツ機能を利用できます。
ボトルネックはどこで発生しますか:ページを作成するか、クライアントに提供しますか?
Tomcatを実行するだけの場合と比較すると、おそらくどこにもありません。nginxが他のすべてを処理している間、TomcatがJava部分を実行するのを軽減できます。 nginxがTomcatからページを要求して提供するのにかかる余分な時間を与えるか、または取ってください。
Tomcatを使用して動的コンテンツを生成する場合、Tomcatをnginxでプロキシすると、nginxのパフォーマンスが向上しますか?
はい。
また、コンパイル言語であるため、PHPよりも高速に実行されます(ここでは、JavaはPHPよりも約37倍高速であることが示されています)
あなたがインターネットで読んだすべてを信じてはいけません;)
インタープリター型言語は、コンパイルされたコードのパフォーマンスが常に不足する可能性がありますが、通常、オペコードキャッシュが助けになり、コードを半コンパイルされた状態にします。これにより、処理速度が大幅に向上する傾向があります。
コンパイルされたコードの範囲ではありませんが、十分に近いです。
JavaとPHPのどちらかを選択する場合は、次の点に注意する必要があります。
両方の言語で同じアプリケーションを作成し、両方をデプロイしてテストしない限り、どちらがパフォーマンスが優れているかを尋ねることは不可能です。もちろん、これは99.9999%のチームにとって非常に費用と時間がかかります。
このタイプの選択に直面したとき、あなたが尋ねたいと思うかもしれないいくつかの質問があります代わりに「どの言語がより良く機能するか」:
答えがPHPの場合、予想されるパフォーマンスの向上のために別の言語でアプリケーションを作成しようとするのは愚かなことです。ただし、チームが(たとえそれがあなただけであっても)Javaにはるかに慣れている場合は、できる限り自分が知っていることを実行することに時間を割くことをお勧めします。
HTH!