threading.py._release_save& socket.py.accept cpu时间

时间:2011-04-04 16:23:49

标签: python multithreading performance profiling

我正在创建一个应用程序,我希望尽可能地限制其资源占用空间。 我注意到我的应用程序正在消耗低负载时平均4%的CPU使用率,虽然这并不一定意味着一件坏事,但我想知道它究竟来自何处。

我开始使用分析软件(yappi),虽然所有线程似乎都没有花费太多时间,但有两个例外:

name                                 #n       tsub       ttot       tavg
Thread         1402.. ../lib/python2.6/socket.py.accept:19 340      678.6799.. 
..bmit_listene 1402.. ..n2.6/threading.py._release_save:21 5032     932.8961..

这些方法/类是否已知“资源密集型”? 您是否有与这些相关的绩效改进技巧?

谢谢,

1 个答案:

答案 0 :(得分:0)

分析器中阻塞调用的计时不是很有意义。当阻塞调用使线程被挂起并且其他线程运行时,当阻塞调用返回时,在其他线程中花费的时间也被添加到被调用函数的总时间。请参阅:Yappi的多线程统计信息

更新:v0.62支持CPU时间分析,有效地解决了与阻塞函数的多线程分析相关的所有问题。