ホームページ  >  記事  >  バックエンド開発  >  インタプリタ言語としての PHP には、コンパイル言語である Java や C++ とのパフォーマンスの差があります。PHP の効率を向上させるにはどうすればよいでしょうか。

インタプリタ言語としての PHP には、コンパイル言語である Java や C++ とのパフォーマンスの差があります。PHP の効率を向上させるにはどうすればよいでしょうか。

WBOY
WBOYオリジナル
2016-06-17 08:31:231577ブラウズ

すべての PHP 専門家がそれについて議論することを願っています

返信内容:

Facebook は、PHP の効率を向上させるには構文を変更するのが最善であると教えてくれたので、HHVM を作成しました。 この問題に関しては、実は愚痴を言いたいだけなのです
一般に、効率を向上させる最も簡単な方法は、開発中に多くの PHP 効率最適化手法に注意を払うことです。アルゴリズム、文法、アーキテクチャなど。経験やオンラインを通じて多くの方法を蓄積できます。
効率のボトルネックがこれらの取るに足らないものにあるわけではないことがわかった場合。一部の関数や関数で速度が遅い場合は、問題がある場合はどこでも問題を解決し、C 拡張機能を使用して問題を解決します。ただし、C の拡張方法によってビジネス ロジックが変更されることがよくあります。
あるいは、インタプリタ型言語である PHP がどこでも遅いことに気づくかもしれません (笑)、どうすれば壊れるでしょうか?これはアクセラレータであり、関連する紹介と説明の再解析を避けるためにキャッシュ操作コードを使用します。
3 つの無料 PHP アクセラレータの比較: APC、eAccelerator、XCache あるいは、考え方を変えれば、バイナリ言語に直接切り替えて実行した方が早いでしょうか?キャプションについては、次の解決策を参照してください。 c (Roadsend および phc)、c++ (hiphop)、java (Quercus)、c# (Phalanger)。しかし、HIPOP を例に挙げると、この男
facebook/hhvm · GitHub
です。これは Facebook の hhvm の前身であり、実際には PHP を高度に最適化された C++ コードに変換し、それを g++ やコード トランスフォーマーなどでコンパイルします。これらのメソッドを使用して、基本的に PHP を別の言語に変換します。しかし、この製品の展開はひどく、使いにくく、デバッグが面倒で、コンパイルに時間がかかるのは単純に反人間的です。
上記の利点の集大成として hhvm が誕生したと思います。
hhvm は実際には HipHop の改良版であり、現在の安定バージョンは 2.3 であり、そのパフォーマンスは HipHop よりも 40% 優れています。
http://hhvm.com/言語が明確ではないため、原理については説明しません。 zend と hhvm については、hhvm が zend と比較したい場合、hhvm で JIT が有効になっていれば、hhvm はマシン コードを直接実行できると思います。 zend はオペコードをキャッシュしますが、マシンコードを実行するには C を呼び出す必要があります。
オンラインには関連ドキュメントがたくさんあり、質問者はそれらに注意を払うことができます

質問者は、特別に使用されると言われているこのソリューション HippyVM
も参照できますFacebook の顔を平手打ちする 公式の主張では、ネイティブ PHP より 7.x 高速、Facebook の hhvm より 2 倍高速です
公式 Web サイトにある写真を投稿してください

インタプリタ言語としての PHP には、コンパイル言語である Java や C++ とのパフォーマンスの差があります。PHP の効率を向上させるにはどうすればよいでしょうか。詳しくは分かりません 試してみたら
pypy は素晴らしいとしか言​​いようがありません
Facebook は顔面を叩かれるような感じになるのかな〜? ( מּ_מּ)

私はただの初心者です、もし間違っていたら、皆さんが私を訂正してくれることを願っています。ちなみにphpは世界一の言語です(笑) phpNG がこの投稿を完了します PHPNG、HHVM、YAF、Baidu ODP、Swoole 実際、PHP のパフォーマンスが悪いと言っている人は、何年も PHP を使っていません。 yaf や palcon などの C 開発フレームワークのパフォーマンスはどの程度悪くなるでしょうか?さらに、インタープリタ型言語にまだ苦労している人は、opcache のようなものがあることを知りません。現在の PHP は、一度実行すると自動的にプリコンパイルされます。 0. このレベルのボトルネックに遭遇したことがありますか?
1. PHP 7、お待ちください... 静的言語に変換しましょう! PHP は汎用プログラミング言語ですが、Web 開発では 99.9% の確率で使用されているため、ボトルネックは通常、PHP 側ではなく、DB 層などのネットワーク IO にあります。
最適化を行うときは、まず xhprof などのツールを使用して
測定し、最も時間のかかる部分を見つけます。それらのほとんどは、PDO 接続の数などの DB 呼び出しにあります。コードを最適化することで削減できます。 さらに、db 層の最適化には、通常、実行された SQL ステートメント (できればログ付き) を分析して、適切に結合インデックスを追加し、カバーインデックスを有効に活用することが含まれます。インデックスの追加は挿入効率に影響しますが、書き込みは読み取りと比較して 28 規則に準拠しています。
最後に、システムが複雑になるにつれて、データベースとアプリ間のキャッシュの追加、時間のかかるタスクの非同期化など、パフォーマンスを向上させるためにアーキテクチャを最適化する必要があります。
——————ここには書ききれないので、一般的な話にします————————
PHP言語の観点から見ると、開発にはフレームワークを使用するのが一般的です、フレームワークは避けられない消費をもたらすため、PHP を拡張して書かれた優れた MVC フレームワーク (palcon や yaf など) が存在します。
PHP の hhvm は、PHP のパフォーマンスを向上させるもう 1 つの方法です。このフレームワークは、より優れたパフォーマンスをもたらす可能性があります。しかし、別のポータルを設立するのは少し急ぎすぎます。そのため、PHP コミュニティが十分に成熟すると、ほとんどの人は hhvm を選択しないでしょう。これは非常に危険です。 halconのようなC言語で書かれたフレームワークであっても、比較的小規模なチームの場合、C言語を使いこなせないと重大な問題が発生するリスクが比較的高くなります。 Facebook が使用している hhvm を使用するか、非同期フレームワークに変更してください。
ただし、一般的な PHP アプリケーションのシナリオでは、パフォーマンスは PHP 自体には依存しません。 Swoole: PHP の非同期、並列、分散拡張機能
の写真と事実
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。