1

モジュール内のいくつかの場所で呼び出される関数がある場合、仮想マシンはその関数が最初に実行されるときにのみネイティブ コードにコンパイルし、他の呼び出しではキャッシュされたコードを使用しますか? (.NET jit コンパイラのように)

4

1 に答える 1

9

CPython (標準の Python 実装) では、Python モジュールが初めてインポートされると、バイトコードにコンパイルされ、.pyc ファイルに保存されます。それ以降、.pyc ファイルは必要に応じて VM によって読み取られ、解釈されます。.pyc がメモリに読み込まれると、バイトコードがメモリに格納され、関数が呼び出されたときに VM によって解釈されます。

CPython は、Python コードをネイティブの実行可能コードにコンパイルすることはありません。

于 2011-02-05T18:22:21.200 に答える