6

今日のPHPの世界のニュースは、FacebookのHipHopです。

HipHop for PHPは、技術的にはコンパイラ自体ではありません。むしろ、それはソースコードトランスフォーマーです。HipHopは、PHPソースコードをプログラムで高度に最適化されたC ++に変換し、g++を使用してコンパイルします。HipHopは、意味的に同等の方法でソースコードを実行し、パフォーマンスの向上と引き換えに、eval()などのめったに使用されない機能を犠牲にします。HipHopには、コードトランスフォーマー、PHPのランタイムシステムの再実装、およびこれらのパフォーマンスの最適化を利用するための多くの一般的なPHP拡張機能の書き直しが含まれています。

私の質問は、これは実際にどのタイプのWebアプリケーションに役立つのかということです。

典型的なデータベースにバインドされたWebアプリは、これによって十分に提供されないようですが、よりまれなCPUにバインドされたアプリは提供されます。

4

6 に答える 6

7

多くの処理を行う、または大量のメモリを使用する Web アプリケーション。どうやら、この HipHop は CPU 使用率を約 50% 削減し、メモリ使用量も削減します (メモリ使用量がどれだけ削減されるかはどこにも言及されていません)。これは、より少ないサーバーで同じ数のリクエストを処理できることを意味します。

追加の利点は、コードがコンパイルされる前に一貫性があることを確認するための基本的な型チェックがあることです。これは、脆弱な型システムの結果として PHP が現在無視しがちなバグの種類を特定するのに役立ちます。

マイナス面は、PHP のより動的な機能の一部がサポートされていない可能性があることですeval(ただし、これは間違いなくプラスでもあります)。

于 2010-02-02T20:31:14.137 に答える
4

PHP を C++ に「変換」して、スケーラブルな Web サイトのパフォーマンスを向上させます。

つまり、HipHop は、ハーバード大学で始めたウェブサイトを持っていて、すぐに 10 億ドル規模の企業に成長し、人々がジャスティン ティンバーレイク主演の映画を制作しているときのものです。そのような Web サイトがあり、CPU サイクルを節約したいが、コードベースを書き直したくない場合は、HipHop を使用します。

始めたばかりの場合は、よりスケーラブルな言語を学ぶことを拒否する PHP プログラマーだけがいる無人島に閉じ込められていない限り、HipHop を使用しません。

于 2010-02-03T06:36:05.063 に答える
2

解釈されたコードに対してマシン コードを実行する方が高速です。これはある意味では便利ですが、各プロセッサが行う作業が少なくなるため、必要なマシンの数も減ります。

これは、必要なマシンの数を削減できるという点で、Facebook のような企業にとっては良いことです。
彼らにとってなぜ便利なのかというと、彼らはおそらく、大量のデータに対して多くの並べ替えとインデックス作成を実行します。

于 2010-02-02T20:32:04.390 に答える
0

ヒップホップは、Facebookやその他の巨大なPHPベースのサイトを除いて本質的に無意味です。「速い」という理由で多くの人が時流に乗ると確信していますが、サーバーファーム全体を使用するPHPベースのアプリはいくつありますか?ソーシャルネットワークサイトで作業しているからといって、HHの使用を検討する必要があるという意味ではありません。

于 2010-02-05T16:35:18.317 に答える
0

この記事:

http://terrychay.com/article/hiphop-for-faster-php.shtml

一連の「if」ステートメントでこの質問に完全に答えます。

于 2010-02-05T16:03:22.987 に答える
0

一連の .php ファイルを取り込み、g++ を使用してコンパイルできる一連の c++ ファイルを生成するある種のコンパイラと考えることができます (他のコンパイラがサポートされているかどうかは不明です)。結果の exe は、Web サーバーを含む Web アプリケーションです。つまり、exe を実行でき、準備完了です。Web サーバーはlibeventに基づいており、おそらくかなり効率的です。

于 2010-02-05T16:19:40.217 に答える