ホームページ  >  記事  >  バックエンド開発  >  Webサイトのバックエンドとしてのphpとjavaの違いは何ですか?

Webサイトのバックエンドとしてのphpとjavaの違いは何ですか?

WBOY
WBOYオリジナル
2016-06-23 14:17:281098ブラウズ

ディスカッションへの返信 (解決策)

違いはありません

違いはありません

なぜ一部の企業は Web サイトのバックエンドとして Java を選択するのでしょうか?

誰もが気に入っており、その上、Java はソース コードを提供する必要がありません

誰もが気に入っており、Java はソース コードを提供する必要がありません

Java は、C 言語と同様、非スクリプト言語ですか?

これ以外に、違いは何ですか?

セキュリティ....

セキュリティ....

実行ファイルのソースコードを知るのは難しくありませんか?

セキュリティ....


セキュリティとはどのようなセキュリティを指しますか?

私は Java を使用してバックエンド マークを書いたことはありません

Java はより多くのこと (高コスト) を行うことができ、PHP はより少ないこと (低コスト) を行うことができます。
Web サイトのバックエンド要件が高くない場合は、php を使用できます

セキュリティ....

セキュリティとはどのようなセキュリティを意味しますか?

コピーして貼り付けるだけです


いくつかの側面から見てみましょう:
1. 実行メカニズム:
Java コードがバイトコードにコンパイルされた後、仮想マシン内の JIT によってローカル コードに再コンパイルされると噂されています。私自身のテストの結果、単純な Memcache プロトコル キャッシュ サーバーを Java で実装し、Java 1.6 で実行したところ、同じ量のデータに対するアクセス時間の比率は約 1 でした。 3:2とギャップはあるものの、想像よりはずっと良いです。 Java 1.7 では JIT が大幅に改善されており、そのパフォーマンスは Java 1.6 よりもさらに優れています。
PHP はテキスト コードを直接解釈して実行します。オペコード キャッシュ テクノロジを使用しても、依然として克服できないパフォーマンス ギャップが存在します。 PHP のオペコードは Java のクラス バイトコードに似ており、引き続き解釈および実行されます。
2. 同時実行性の処理:
Java は、同時処理に対して単一プロセス マルチスレッド アプローチを採用しており、Web アプリケーションは Web サーバーの起動とともに開始され、Web ブラウザーからのリクエストはスレッド プール内のアイドル状態のスレッドに割り当てられます。つまり、リクエストが到着すると、プロセスの準備が整い、スレッドが行う必要があるのはビジネス ロジックの処理だけです。
PHP は同時処理のためのマルチプロセスアプローチを採用しています。Web サーバーには物理的な Web アプリケーションの概念はなく、リクエストの到着と同時にプロセスが開始されます。 Fast CGI 環境には、スレッド プールと同様のプロセス プール テクノロジがあり、パフォーマンスの向上に非常に役立ちます。ただし、Web サーバーと Fast CGI は依然としてソケットを介して通信する必要があるため、ある程度の IO 損失が発生します。その一方で、プロセス プール内のプロセス間の通信も困難になります。同時処理の点では Java と比較することはできません。
3. データベース アプリケーション:
Java はデータベース接続プール テクノロジを使用して、データベース接続プロセスによって生じる時間のロスを節約できます。
PHP にはこの利点がありません。理由は上記の 2 番目の点にあります。
データベース インターフェイスに関しては、Java には JDBC があり、PHP には PDO があり、この 2 つは非常に似ています。ただし、Java には、データベース操作を非常に簡単にする ORM テクノロジ フレームワーク (Hibernate など) が多数あり、PHP の実行方法によって、それが ORM の制限領域であるかどうかが決まります (もちろん、ORM を実行することもできますが、どの程度まで実行できるか)実行できるかどうかは、ORM によって決まります (発生するパフォーマンス損失の許容範囲によって決まります)。
4. キャッシュ テクノロジ
Java は単一プロセスです。もちろん、ネットワーク IO がないため、Ehcache などの優れたキャッシュ フレームワークもあります。性能は非常に高いです。
PHP のマルチプロセスとシングルスレッドは、Memcache などの外部キャッシュ サーバーのみを使用できると判断します。
5. ホット デプロイメント
サーバーを停止せずにバグを修正したい場合、Java のホット デプロイメント機能は非常に弱いです。それをするのは難しいです。
PHP は当然ながらホットデプロイされます。
6. 開発コスト
優れた Java プログラマーにはより多くの知識が必要で、開発とデバッグのサイクルは長くなり、より優れた Web サーバーには料金もかかります。
PHPは無料で、Webサーバーも無料です。
7. セキュリティ
これは、セキュリティをどのように定義するかによって異なります。コードのセキュリティの場合、この点では、この 2 つはほぼ同じです。
Java には、一部の「不正な操作」が実行できないようにするためのセキュリティ構成メカニズムがあります。この点では、PHP は脆弱です。
ただし、Java はバグによりアプリケーション全体を簡単にクラッシュさせる可能性がありますが、PHP ははるかに安全です。

実際、Java には多くの利点がありますが、意思決定者が Java ではなく PHP を選択できるのは最後の 3 つだけです。

コピーして貼り付けるだけです


いくつかの側面から見てみましょう:
1. 動作メカニズム:
Java コードがバイトコードにコンパイルされた後、仮想マシン内の JIT によってローカル コードに再コンパイルされるとの噂です。私自身のテストの結果、単純な Memcache プロトコル キャッシュ サーバーを Java で実装し、Java 1.6 で実行したところ、同じ量のデータに対するアクセス時間の比率は約 3 でした。 2、ギャップはあるものの想像よりずっと良いです。 Java 1.7 では JIT が大幅に改善されており、そのパフォーマンスは Java 1.6 よりもさらに優れています。
PHP はテキスト コードを直接解釈して実行します。オペコード キャッシュ テクノロジを使用しても、依然として克服できないパフォーマンス ギャップが存在します。 PHP のオペコードは Java のクラス バイトコードに似ており、引き続き解釈および実行されます。
2. 同時実行性の処理:
Java は、同時処理に対して単一プロセス マルチスレッド アプローチを採用しており、Web アプリケーションは Web サーバーの起動とともに開始され、Web ブラウザーからのリクエストはスレッド プール内のアイドル状態のスレッドに割り当てられます。つまり、リクエストが到着すると、プロセスの準備が整い、スレッドが行う必要があるのはビジネス ロジックの処理だけです。
PHP は同時処理のためのマルチプロセスアプローチを採用しています。Web サーバーには物理的な Web アプリケーションという概念はなく、リクエストの到着と同時にプロセスが開始されます。 Fast CGI 環境には、スレッド プールと同様のプロセス プール テクノロジがあり、パフォーマンスの向上に非常に役立ちます。ただし、Web サーバーと Fast CGI は依然としてソケットを介して通信する必要があるため、ある程度の IO 損失が発生します。その一方で、プロセス プール内のプロセス間の通信も困難になります。同時処理という点では Java と比較することはできません。
3. データベース アプリケーション:
Java はデータベース接続プール テクノロジを使用して、データベース接続プロセスによって生じる時間のロスを節約できます。
PHP にはこの利点がありません。理由は上記の 2 番目の点にあります。
データベース インターフェイスに関しては、Java には JDBC があり、PHP には PDO があり、この 2 つは非常に似ています。ただし、Java には、データベース操作を非常に簡単にする ORM テクノロジ フレームワーク (Hibernate など) が多数あり、PHP の実行方法によって、それが ORM の制限領域であるかどうかが決まります (もちろん、ORM を実行することもできますが、どの程度まで実行できるか)実行できるかどうかは、ORM によって決まります (発生するパフォーマンス損失の許容範囲によって決まります)。
4. キャッシュ テクノロジ
Java は単一プロセスであり、多くのキャッシュは外部ツールに頼らずに Java ヒープ内で直接実行できます。もちろん、ネットワーク IO がないため、Ehcache などの優れたキャッシュ フレームワークもあります。パフォーマンスは非常に高いです。
PHP のマルチプロセスとシングルスレッドは、Memcache などの外部キャッシュ サーバーのみを使用できると判断します。
5. ホット デプロイメント
サーバーを停止せずにバグを修正したい場合、Java のホット デプロイメント機能は非常に弱いです。それをするのは難しいです。
PHP は当然ながらホットデプロイされます。
6. 開発コスト
優れた Java プログラマーにはより多くの知識が必要で、開発とデバッグのサイクルは長くなり、より優れた Web サーバーには料金もかかります。
PHPは無料で、Webサーバーも無料です。
7. セキュリティ
これは、セキュリティをどのように定義するかによって異なります。コードのセキュリティの場合、この点では、この 2 つはほぼ同じです。
Java には、一部の「不正な操作」が実行できないようにするためのセキュリティ構成メカニズムがあります。この点では、PHP の方が脆弱です。
ただし、Java はバグによりアプリケーション全体を簡単にクラッシュさせる可能性がありますが、PHP ははるかに安全です。

実際、Java には多くの利点がありますが、最後の 3 つだけでも、意思決定者が Java ではなく PHP を選択する可能性があります

なるほど、淘宝網がバックエンドの作成に Java を使用するのも不思議ではありません

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