2011-12-25 35 views
1

在我用Stackless Python編寫的服務器中,我偶爾會在CPU使用率上出現5-10秒的持續高峯。偶爾會出現這種情況,所以我很難追蹤到它。Stackless Python - 配置文件單個tasklet執行時間

我用CPROFILE嘗試並確定這些尖峯的來源,但CPROFILE給出了其中的時間被每個函數花費的總體情況。我真正想知道的是,CPU尖峯是否是由於某個單個tasklet中發生的某些處理(並拖延了其他tasklet),或者是否有多個tasklet進行大量處理(即,每個tasklet都處於活動狀態,每個處理都在進行很多工作)。

有掛接到在無堆棧的Python調度,這樣我可以添加一些計時代碼的便捷方式?換句話說,是否有一個函數在一個tasklet變爲活動狀態並且它變爲非活動狀態時被調用?

回答

0

我還沒有找到明確的函數掛鉤到一個tasklet阻止/恢復時,但由於Channel.receive()通常是塊/恢復發生時,我迷上了發生的每一個事件。