繁体   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