python(またはphp)のようなスクリプト言語では、.netやjavaのようにバイトコードにコンパイルされません。
つまり、これは、すべてのリクエストで、アプリケーション全体を調べて解析/コンパイルする必要があることを意味しますか?または、少なくとも特定のコールスタックに必要なすべてのコードはありますか?
python(またはphp)のようなスクリプト言語では、.netやjavaのようにバイトコードにコンパイルされません。
つまり、これは、すべてのリクエストで、アプリケーション全体を調べて解析/コンパイルする必要があることを意味しますか?または、少なくとも特定のコールスタックに必要なすべてのコードはありますか?
python(またはphp)のようなスクリプト言語では、.netやjavaのようにバイトコードにコンパイルされません。
間違った例:import
Pythonで使用するものはすべてバイトコードにコンパイルされます(.pyc
インポートするソースを含むディレクトリに書き込める場合はファイルとして保存されます。もちろん、インストールの選択に応じて、標準ライブラリ&cは通常プリコンパイルされます)。メインスクリプトを短くシンプルに保つだけで(モジュールをインポートしてその中の関数を呼び出す)、コンパイルされたバイトコードを全体で使用することになります。(Pythonのコンパイラーは非常に高速になるように設計されていますが、それ以外の点では合理的な最適化をあまり行わないという意味もありますが、それを完全に回避する方が高速です;-)。
はい、CGIとして実行する場合は、リクエストごとにプロジェクト全体をロードする必要があります。FastCGIとmod_wsgiはプロジェクトをメモリに保持し、ソケットを介してプロジェクトと通信します。