5

私はいくつかの CGI スクリプトを開発しており、「使用」を使用して多くのモジュールをインポートするときに生成される「開始時間」を短縮する解決策を見つけようとしています。

アップデート:

提供されたソリューションは素晴らしいものですが、私が取り組んでいるスクリプトは、コンソール モードと CGI モードの両方で実行され、いくつかの典型的な HTTP 環境変数が存在するかどうかをチェックします。

「コンソール モード」ではデータを「通常どおり」ダンプし、「html モード」ではリアルタイムで置換を行い、他の HTTP ヘッダーをクライアントに送信します。

どちらの場合も起動時間を改善したいと思います。

4

6 に答える 6

13

1 つの perl プロセスを開始して複数の要求を処理するには、CGI::Fastの使用を検討してください。大きな CGI スクリプトのいくつかを CGI::Fast に変更するのに、ほとんど労力はかかりませんでした。mod_perl とは異なり、ホスティング サイトで CGI::Fast を実行するのは非常に簡単です。なぜなら、Apache を再起動せずにスクリプトを再起動できるからです (少なくとも、mod_perl を要求したときにホスティング サービス担当者からそう言われました)。

于 2009-03-27T18:36:01.563 に答える
10

mod_perlを使用して scrips を実行するのはどうですか?

于 2009-03-27T18:35:50.707 に答える
9
  • これが実際にボトルネックであることを確認してください
  • 必要なモジュールのみをインポートする
  • それらを見つけるために無数の場所を検索する必要がないことを確認してください
  • 起動コストの高いプロセスを (デーモンなどとして) ホットで実行し、軽量の CGI スクリプトを使用してそれらを起動することを検討してください。
  • シェルから完全な CGI を実行するのではなく、さまざまなアクセラレーターを調べてください (ページの提供に何を使用しているかによって異なります)。
于 2009-03-27T18:34:51.707 に答える
5

いつでもlessプラグマを試すことができます。

use less 'starttime';

もちろん、それはシステムに依存し*ます。あなたの最善の策は、mod_perlまたは FastCGI モジュールの 1 つを使用することです: CGI:: FastFCGIなど。

コマンドラインから高速にする必要がある場合は、クライアント/サーバー アーキテクチャに移行することをお勧めします (これが FastCGI のすべてです)。

*現在、less プラグマの starttime オプションを実装しているシステムはありません。

于 2009-03-27T18:45:14.193 に答える