2011-12-25 11 views
1

Stackless Pythonで書かれた私のサーバでは、CPU消費量が5〜10秒の間に大きくなることがあります。これは散発的に発生するので、私はそれを追跡するのに問題があります。Stackless Python - プロファイルシングルタスクレットの実行時間

私はこれらのスパイクがどこから来ているのかを調べるのにcProfileを使用しましたが、cProfileは機能ごとに時間が費やされている場所を全体的に示しています。私が本当に知りたいのは、CPUスパイクが単一のタスクレット(および他のタスクレットの停止)で発生する何らかの処理によるものか、多数の処理を行う複数のタスクレット(すなわち、それぞれがアクティブになったとき、多くの作業)。

私はいくつかのタイミングコードを追加できるように、Stackless Pythonのスケジューラにフックする便利な方法はありますか?言い換えれば、タスクレットがアクティブになったときに呼び出され、非アクティブになったときに呼び出される関数がありますか?

答えて

0

タスクレットのブロック/再開時にフックする明示的な機能は見つかりませんでしたが、通常はブロック/レジュームが発生したときからChannel.receive()が発生していたため、