質問

私たちは、多くの非同期IOを必要とするアプリに広範囲にツイストを使用しています。代わりに、物がCPUバインドされている場合があります。そのために、作業を行うプロセスのプールを生み出し、複数のサーバーでこれらを管理するシステムもあります。よく働く。問題は、新しいチームメンバーをスピードアップするのが難しいことです。ツイストで非同期コードを書くには、ほぼ垂直学習曲線が必要です。それはまるで人間が自然にそのように考えないかのようです。

おそらく混合アプローチを検討しています。たぶん、XMLRPCサーバーのパーツとプロセス管理を維持し、少なくともそうではないが、少なくともある程度同期しているように見える他のものをねじれ、実装してください。それから再び私は暗黙的に明示的に好きなので、これについてもう少し考えなければなりません。とにかくグリーンレットに - そのようなものはどれくらいうまくいきますか?そのため、スタックレスがあり、Gallentean Avatarからわかるように、CCPのフラッグシップEVEオンラインゲームでの使用において途方もない成功を直接認識しています。 EventletまたはGeventはどうですか?今のところ、EventletのみがTwistedで動作します。しかし、Geventは、純粋なPythonの実装ではなく、代わりにLibeventに依存しているため、より速くなると主張しています。また、特異性と欠陥が少ないと主張しています。 Gevent 私が知る限り、それは1人の男によって維持されています。これは私をやや不安にさせますが、すべての素晴らしいプロジェクトはこのように始まります...それからあります パイキー - 私はまだそれについて読んだことさえありません - このスレッドでそれを見ただけです: スタックレスの欠点.

混乱している - 私は何をすべきか疑問に思っています - イベントレットがおそらく最善の策であるように聞こえますが、それは本当に安定していますか?そこにいる人はそれで何か経験がありますか?代わりにスタックレスを使用して、それが存在していて、テクノロジーが実証されているので、Twistedが同様に同様に同様に一緒に働いています。しかし、それでも私はこれを行うためにPythonの個別のバージョンを持つ必要がありません。何をすべきか....

このやや不快なブログエントリは、私のために頭の爪に当たります: 大人のための非同期IO 私がジャーバの発言のようにねじれていることはありません。ジャワは通常、あなたがスレッドの考え方にいる場所ですが、何であれです。それにもかかわらず、その猿のパッチが本当にそのように機能するなら、それからすごい。ただすごい!

役に立ちましたか?

解決

あなたはチェックアウトしたいかもしれません:

EventletとGeventは、タスクレットを認識していない標準的なライブラリを備えたスタックレス船を搭載しているため、Stacklessに実際に匹敵するものではありません。の実装があります スタックレス用ソケット しかし、包括的なものは何もありません Gevent.Monkey. 。 CCPは裸の骨のスタックレスを使用せず、afaikのみがWindowsのみであり、オープンソースではなかったスタックレスI/Oと呼ばれるものがあります(?)。

EventletとGeventの両方は、GreenletではなくStacklessで走らせることができます。ある時点で、私たちはこれをしようとしました GSOCプロジェクト しかし、学生は見つかりませんでした。

他のヒント

あなたの質問の一部に答える - あなたが見るなら http://speed.pypy.org Pypyの上にねじれていることがわかります 五月 いくつかのスピードアップを提供します。もちろん、これはワークロードに依存しますが、おそらくチェックアウトする価値があります。

乾杯、
フィジャル

EventletとRepoze.BFGの上に少しリアルタイムのWebアプリを作成しました(かなり前にDjangoをあきらめました)。 EventletとMonkeyのパッチは、Tedが言うのと同じくらい簡単であることがわかりました。

Geventは純粋なPythonではなく、Cpythonに厳密に依存しています。あなたが言及したWebフレームワークから イベントレット (OpenStack)と 竜巻 (FriendsFeed、Quora)は、最大の展開があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top