16

PyPy の新しいバージョンには、統合されたStacklessが同梱されています。私が知る限り、同梱されている Stackless は、2001 年から継続されている元の Stackless と同じではありません。つまり、主にディスパッチャーを備えたグリーン スレッド フレームワークです。

Greenletは Stackless のスピンであり、拡張モジュールとして Stackless のグリーン スレッド機能を提供します。

PyPy + greenlet + 一部のディスパッチャー (例: gevent )よりも、PyPyから「ネイティブ」スタックレスを使用する利点はあります? または問題は、PyPy でこれらのタイプの拡張機能を使用できないことですか? より具体的に言うと、PyPyにはgreenletの独自の実装があることを知っています( continuletに基づいています)。しかし、PyPyで外部グリーンレットをgeventと内部グリーンレットにリンクする可能性に興味があります。

PyPy には、標準ライブラリの代わりにスタックレスを使用するための非同期 IO ライブラリが同梱されていますか?

スタックレス自体と、Python に対する他の非同期ライト スレッド拡張機能 (eventlet、gevent、twisted...) を知っています。だから私はそれらの違いを見ているのではなく、スタックレスで構築されたpypyから得られる利点です。

4

1 に答える 1

16

PyPy には、標準ライブラリの代わりにスタックレスを使用するための非同期 IO ライブラリが同梱されていますか?

PyPy 2.6.1 および PyPy3 2.4.0では、(pypi パッケージを介して) asyncio を使用して、スタックレスの非同期機能を置き換えることできます。

PyPy + greenlet + 一部のディスパッチャーよりも、PyPy から「ネイティブ」スタックレスを使用する利点はありますか

より豊富なスタックレス API (マイクロスレッドのピクルなど) の外側では、スケジューラが C で記述されたランタイムの一部であるため、速度が向上する可能性があります。

スタックレスの詳細については、こちらの記事What is Stackless?をご覧ください。

于 2012-01-24T18:34:15.913 に答える