3

私は、https://github.com/caolan/asyncなどのライブラリを使用して、イベント ループをブロックすることなく、配列を非同期に反復できる Node.js から来ています。

Gevent で同じことを達成するには、sleep(0)ループの反復ごとに呼び出すことで正しいでしょうか?

dbクエリを解析している間、またはPythonコード(IO操作ではない)のブロック時間はごくわずかですが、これはWebサーバーに実際に必要ですか?

4

2 に答える 2

0

一般的にいいえ、

ただし、アレイ全体を処理するのに必要な CPU 時間が非常に大きく、それによって生じるレイテンシが許容できない場合は、全体を別のプロセス/タスク キュー システムにオフロードする必要があります。

sleep(0) を実行するたびに、オーバーヘッド (スイッチインとスイッチアウト) が追加されるため、状況が悪化します。

CPU バウンドのタスクと IO バウンドのタスクは、同じプロセス内でうまく混合できません。

または、多数の同時接続が必要ない場合は、gevent をフォーク前のサーバーに置き換えます。

于 2014-04-30T16:27:58.510 に答える