我目前正在使用 fuse-python 编写保险丝。它已经在做它应该做的。然而,在它安装了几个星期后,它变得明显变慢了。所以我想分析它。我知道一些可以优化的地方。但这些不应该是罪魁祸首。
但是,fuse-python 会陷入无限循环(参见fuse source 的第 733 和 757 行)。如果我在调试模式下运行保险丝(使用-d
开关),它将在前台运行。但是,我不能用SIGINT
也不用CTRL+C
(无论如何都是一样的)来阻止它。
我尝试使用该signal
模块将信号捕获在主线程中。但这也不起作用。有趣的是,一旦我用 拍下这个过程SIGKILL
,我就会看到KeyboardInterrupt
on stdout
。此外,在 a 之后SIGKILL
,信号处理程序按预期执行。
这会对剖析产生影响。由于该过程永远不会正常终止,因此cProfile
永远没有机会保存统计文件。
有任何想法吗?