簡體   English   中英

無堆棧Python-配置單個Tasklet執行時間

[英]Stackless Python - profile single tasklet execution time

在我用Stackless Python編寫的服務器中,我偶爾會在5-10秒的時間內出現CPU使用率的峰值。 這種情況偶爾會發生,因此我很難找到它。

我已經使用cProfile嘗試確定這些峰值來自何處,但是cProfile可以大致了解每個函數在哪里花費時間。 我真正想知道的是CPU峰值是由於單個Tasklet中發生某些處理(並使其他Tasklet停頓)還是由於多個Tasklet進行了大量處理(即,當每個Tasklet處於活動狀態時,每個都在做)很多工作)。

有沒有一種方便的方法可以掛接到Stackless Python中的調度程序中,以便我可以添加一些計時代碼? 換句話說,當可以掛接的tasklet處於活動狀態和非活動狀態時,是否會調用一個函數?

我還沒有找到當Tasklet阻止/恢復時要掛接的顯式函數,但是由於Channel.receive()通常是在發生阻止/恢復時掛接的,所以我就鈎住了每次發生的情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM