2

python(またはphp)のようなスクリプト言語では、.netやjavaのようにバイトコードにコンパイルされません。

つまり、これは、すべてのリクエストで、アプリケーション全体を調べて解析/コンパイルする必要があることを意味しますか?または、少なくとも特定のコールスタックに必要なすべてのコードはありますか?

4

2 に答える 2

5

python(またはphp)のようなスクリプト言語では、.netやjavaのようにバイトコードにコンパイルされません。

間違った例:importPythonで使用するものはすべてバイトコードにコンパイルされます(.pycインポートするソースを含むディレクトリに書き込める場合はファイルとして保存されます。もちろん、インストールの選択に応じて、標準ライブラリ&cは通常プリコンパイルされます)。メインスクリプトを短くシンプルに保つだけで(モジュールをインポートしてその中の関数を呼び出す)、コンパイルされたバイトコードを全体で使用することになります。(Pythonのコンパイラーは非常に高速になるように設計されていますが、それ以外の点では合理的な最適化をあまり行わないという意味もありますが、それを完全に回避する方が高速です;-)。

于 2010-06-10T21:44:18.890 に答える
3

はい、CGIとして実行する場合は、リクエストごとにプロジェクト全体をロードする必要があります。FastCGIとmod_wsgiはプロジェクトをメモリに保持し、ソケットを介してプロジェクトと通信します。

于 2010-06-10T21:34:08.500 に答える