Mooseは素晴らしいオブジェクトフレームワークです。問題は、その依存関係と合わせて、それが非常に大きいことです。私たちのプロファイリングは、私たちのプラットフォームでは、Mooseをロードするだけで非永続的なCGIアプリケーションスクリプトに5〜6秒のオーバーヘッドが発生することを示しています。これは、これらの1回限りのアプリケーションには受け入れられません。
対照的に、永続的なプロセスシステム(FCGIなど)を使用している場合、この起動オーバーヘッドは排除され(つまり、一度だけ発生します)、すべてが順調です。私たちが抱えている問題は、すべてのコードが常に永続的なプロセスで実行されることを保証できないことです。
Mooseの機能が制限されたドロップイン置換としてMouseを使用することを調査しましたが、(この回答で述べたように)それは実行可能なオプションではないことが判明しました。Mooseで動作するように作成したライブラリは、微妙ではありますが重要な方法でMouseで動作しません。また、永続的な環境でMooseと「バニラ」CGI用のMouseの両方をサポートできるように、すべてのモジュールをフォークする必要はありません。
そのため、次のオプションがあります。
- 必要に応じて、社内モジュールをフォークしてMooseまたはMouseのいずれかで動作します。(うん!)
- FCGI/Moose用のモジュールのみを開発してください。「バニラ」CGIはもうサポートしていません。永続的でないスクリプトを作成する必要がある場合、社内モジュールを活用することはできません。
- MooseまたはMouseのどちらも使用しないでください。ただし、他のオブジェクトフレームワークを使用してください。
どのオプションが最適ですか?現在、2に傾いています。バニラCGIとして何かを実行する必要がある場合は、それを吸い上げます。他のフレームワークはどうですか?私たちが見なければならないもっと軽量なものはありますか?