4

私は、FastCGI を使用すると、Web アプリを一度ロードするだけで、FastCGI に などの関数を「提供」するだけでmyHandleHTTPRequest($url)、要求が来るたびに呼び出されるという印象を受けました。このようにして、アプリは常にメモリ内で準備ができているため、パフォーマンスが大幅に向上しますよね?

しかし、そうではないことを理解し始めています。それとも私は間違っていますか?

私には、PHP が FastCGI によってロードされているように思えます。これにより、ある程度の改善が得られますが、リクエストごとアプリがまだリロードされています。

アプリを 1 回ロード (または「フレームワーク」を読み取り) したい (そして、500 リクエストごとにリロードするなど) ことはできますか?

編集:この質問は次のように言い換えられました:カスタムPHP FastCGIインターフェイス

4

2 に答える 2

3

fastcgi が行うことは、(cgi が行うように) リクエストごとに php インタープリターを生成しないようにすることです。mod_php とほぼ同じように、php インタープリターがメモリに保持されるため、これにより処理時間が大幅に節約されます。

パフォーマンスを向上させるためにできることは次のとおりです。

  1. APCや xcache などを使用して、すべての php ファイルを透過的にプリコンパイルし、すべてのリクエストでの再コンパイルを回避します。
  2. キャッシング。Apc などは、変数を保存するためのメカニズムを提供し、有効期間はリクエスト間にまたがります。これは、リクエスト間で処理されたデータを共有し、アプリケーション データをメモリに保持するために使用できます。
于 2009-06-01T14:43:30.880 に答える
2

ええ、多かれ少なかれすべての派手な PHP 統合のことを忘れて(それが General-Purpose-PHP-Interpreter-As-FastCGI を提供するものです)、それ自体で FastCGI サーバーとしてアプリケーションを作成することで、それを行うことができます。 .

これはまったく別のトピックですが、ガイドとしてPerl アプリがどのように機能するかを調べることをお勧めします。

于 2009-06-01T14:40:28.780 に答える