我正在使用fuse-python编写一个文件系统,它已经实现了预期的功能。然而,几周后挂载后它变得明显缓慢,所以我想对其进行剖析。我知道一些可以优化的点,但这些不应该是罪魁祸首。
然而,fuse-python在一个无限循环中挂起(请参见 fuse源代码的733行和757行)。如果我使用
然而,fuse-python在一个无限循环中挂起(请参见 fuse源代码的733行和757行)。如果我使用
-d
开关在调试模式下运行fuse,则它将在前台运行。但是,我无法使用SIGINT
或CTRL+C
停止它(这两个都是相同的)。
我试图使用 signal
模块来捕获主线程中的信号。但这也无法正常工作。有趣的是,一旦我用 SIGKILL
结束进程,我就会在 stdout
上看到 KeyboardInterrupt
异常。同时,在执行 SIGKILL
之后,信号处理程序将按预期执行。
这对性能分析产生了影响。由于进程从未正常终止,cProfile
永远没有机会保存统计文件。
有什么想法吗?