ブログで見たことから、PyPyは非常に野心的なプロジェクトです。兄弟(CPython、Jython、IronPython)上のテーブルにもたらすメリットは何ですか?それは、速度、クロスプラットフォームの互換性(モバイルプラットフォームを含む)、GILなしでc-extensionsを使用する能力、または何ができるのかに関するこれ以上の技術的練習ですか?PythonはCPython、Jython、IronPythonよりも何を提供しなければなりませんか?
28
A
答えて
38
PyPyは、実際には2つのプロジェクトです:
- インタプリタPythonの静的なサブセットであるRPythonでインタプリタを書くことができ、クロスプラットフォームのインタプリタをコンパイルできるコンパイラツールチェーンDスタンドアロン、JVM、.NET用(など)のための
- これら二つのプロジェクトは、多くのの事を可能にRPython
でのPythonの実装。
- PythonでのPythonを維持することは、あなたがJVM、.NETおよびスタンドアロンで実行するPythonのインタプリタを生成することができ、単一のコードベースからC
- でそれを維持するよりもはるかに簡単です - ではなく、複数の少し互換性のない実装 を持つよりも、コンパイラツールチェーンの
- 一部は実験的なJITジェネレータ(現在、第五の化身で本当にうまく機能し始めて)が含まれ - JITed PyPyはそれはムーであるCPythonの
- より速く多くを実行するため目標ですGILを削除する、ガベージコレクションを改善する、スタックレスなどを統合するなどの基本的な言語機能を実験するのが簡単です
本当にPyPyがエキサイティングな理由がたくさんあります。すべての約束まで
4
0
をStackless Pythonパッチが含まれています。
利点は、新しい機能を実装する方がはるかに簡単だということです。今日、この図書館を見て見ることができます。多くの場合、モジュールはPythonで書かれている最初にしてC.に翻訳
0
クロスプラットフォームの互換性
はい
5
これは、PyCon 2009で発表したPyPyの著者の1人にプレゼンテーションするためのlinkです。非常に有益です。
+0
また、EuroPython 2012の話題の激流をチェックしてください。そのいくつかはPyPy上にあったものです(スタックレスはPyPyの一部です) –
関連する問題
- 1. Richfaces 4.0はモバイル開発のために何を提供しなければなりませんか?
- 2. onDestroy()には何が入っていなければなりませんか? (もし何かあれば)
- 3. イメージのデコードに失敗しました。提供されるイメージはビットマップでなければなりません
- 4. CPythonまたはIronPython?
- 5. 提供されているDisplayObjectは呼び出し元の子でなければなりません
- 6. PYTHON/DJANGO: "SUser.user"は "User"インスタンスでなければなりません
- 7. Python対JythonとIronPythonとwxPythonの違いは何ですか?
- 8. テンソルフローの高レベルのAPIはどのようなものを学ばなければなりませんか?
- 9. 500台のサーバーとその構成項目をインベントリーするために、CMDBは何を提供しなければなりませんか?
- 10. ビットベークエラー:何もラズベリーパイを提供しません
- 11. streamreader readlineがeofでなければ何も返しません
- 12. Python 3.6:はstoundでなければなりません。playsoundモジュールでbytesエラーではありません
- 13. パスワードフィールドは一意でなければなりませんか?
- 14. sparkjava:ルートはメインメソッドでなければなりませんか?
- 15. NSURLSessionでHTTPBodyはNSDataでなければなりませんか?
- 16. シングルトンクラスのサブクラスはシングルトンクラスでなければなりませんか?
- 17. テンプレートのパラメータはタイプでなければなりませんか?
- 18. データはQuerySetのようなものでなければなりません(count()とorder_by())またはサポートリスト(データ)を持たなければなりません - NoneTypeにはどちらもありません
- 19. ModeShapeはJackRabbitが提供しないものは何ですか?
- 20. getaddrinfo:提供されているノード名もservnameもありません(SocketError)
- 21. Python - テキストマイニング - TypeError:__hash__メソッドは整数を返さなければなりません
- 22. Jython 2.5.1はPython 2.7と互換性がありませんか?
- 23. ベイグラントコンフィグエラー - 「ボックスを指定しなければなりません。」
- 24. Grailsのドメインクラスのバリデータは、プロパティが別のプロパティよりも大きくなければなりません
- 25. データベースはどのように「完璧」でなければなりませんか?
- 26. 文字列インデックスは整数でなければなりません - Python 3.6
- 27. Python Twitter API TwitterError:user_idは型intでなければなりません
- 28. python json errors:文字列インデックスは整数でなければなりません
- 29. 操作パラメータはsql/pythonでstrでなければなりません
- 30. Python Mongodb、TypeError:ドキュメントはdictのインスタンスでなければなりません。bson.son.SON、bson.raw_bson
FWIWでは、GILなしでCPythonですでにc-extensionsを使用できます。実際にGILに悩まされているのは、通常のPythonコード(スレッドで実行しているとき)です。 – fuzzyman