2

いくつかのカスタム Perl モジュールを含む Perl スクリプトがあります。

を使用してスクリプトのプロファイリングを行いましたがDevel::NYTProf、これらの Perl モジュールを含めると、コストを最小限に抑えたいことがわかります。

スクリプトをインストールPAR::Packerしてコンパイルし、スタンドアロンにしましたが、カスタム Perl モジュールが含まれていません。

助言がありますか?

編集 :

スクリプトが呼び出されるたびにコンパイルのオーバーヘッドが含まれないように、スクリプトをプリコンパイルする必要があります。

4

1 に答える 1

7

インポートするパッケージの一部が起動時に不要な場合は、use呼び出しを変更requireして、パッケージが必要なコード内の場所に移動します (したがって、必ずしも起動時にではなく、必要なときにインポートします)。プログラムの複雑さによっては、プログラムを壊したり、その動作に影響を与えたりせずに、どの呼び出しを変更できるかを判断するのは大変な作業になる可能性があります。


Borodin のデーモンの提案も良いものです。必要なパッケージをロードするプログラムのスケルトンを開始し、何かが呼び出されるのを待ちます (ソケット接続またはシグナル ハンドラーをセットアップするなど)。次に、プログラムを実行する時間になると、プログラムの有用な部分を開始するサブルーチンをfork呼び出します。&main

于 2013-10-11T15:33:30.287 に答える