私のモジュールのいくつかの場所で呼び出される関数を持っている場合、仮想マシンは最初に関数が実行され、他の呼び出しでキャッシュされたコードを使うよりも、ネイティブコードにコンパイルしますか? (.NETのjitコンパイラのような)Pythonのvmは毎回メソッドをコンパイルしますか?
1
A
答えて
9
Pythonモジュールが初めてインポートされるとき、CPython(標準的なPython実装)では、バイトコードにコンパイルされ、.pycファイルに格納されます。その後、必要に応じて.pycファイルが読み込まれ、VMによって解釈されます。 .pycがメモリに読み込まれると、バイトコードはメモリに格納され、関数が呼び出されるとVMによって解釈されます。
CPythonはPythonコードをネイティブの実行可能コードにコンパイルしません。
関連する問題
- 1. Visual Studioは毎回単一ファイルを再コンパイルします
- 2. Unityスクリプトゲームを毎回コンパイルする
- 3. urllib.request.urlopenは毎回Python 3.6のエラーを出しています
- 4. 私はGit Checkoutを毎回再コンパイルしないようにします
- 5. Pythonの:forループ内のシャッフルは毎回
- 6. Xcode 7.3のライブラリプロジェクトが毎回コンパイルされます
- 7. pythonリスト(set(a))は毎回その順序を変更しますか?
- 8. password_verifyは毎回falseを返します
- 9. Ajaxコールは毎回.failメソッドにリダイレクトされます
- 10. 毎回GWT Mavenプラグインが再コンパイルされます
- 11. iOS Instagramは毎回ログインします
- 12. 毎回値を変更してメソッドを実行する
- 13. 私の順列コードは毎回nPnを出力しますか?
- 14. は、毎回
- 15. は毎回
- 16. Cは毎回
- 17. python mysql-connectorは毎回結果としてNoneを返します。
- 18. requestAccessToEntityType - 1回または毎回?
- 19. 効率的なコンパイラは毎回まったく同じ結果をコンパイルしますか?
- 20. 完了メソッド毎回呼び出す方法ThreadPool.QueueUserWorkItemメソッドが
- 21. Python - 毎回progressbarの新しい印刷を取得する
- 22. Python ASTをメソッドにコンパイル
- 23. 毎回falseを返します
- 24. 毎日30分、毎年365回テストを実行します
- 25. Intent Bundleは毎回Nullを返しますか?
- 26. Assembly.Loadは毎回同じアセンブリをロードしますか?
- 27. これは毎回文字列を返しますか?
- 28. (auto i:unordered_map)は毎回同じ注文を保証しますか?
- 29. react-native initは毎回パッケージをダウンロードしますか?
- 30. Selenium Webdriver Firefox 52 Pythonは毎回ランダムなプロキシを選択します
Pythonは関数をマシンコードにコンパイルしません。実行可能な透明なJITはまだありません。 ([Psyco](http://psyco.sourceforge.net/)を見ても、時々不思議に思うかもしれません) – 9000
@ 9000:IronPython、Jython、PyPy? – delnan
@denlan:IronPythonとJythonは、JVMとCLRの基になるJITを使用します。 AFAIK、JythonとJVMのJITは、一般的なCPythonと同じくらい速く動作します。 PyPyはプロダクションの準備ができていますか? – 9000