如果两个选项都可用:使用子进程(例如 hg)调用命令行工具或使用 native python API(例如 Mercurial API),是否存在使用前者更有利的情况?
最佳答案
如果您想执行一些第三方 native 代码,您知道这些代码不稳定并且可能因 segvault 崩溃,那么最好将其作为子进程执行 - 您将能够安全地处理 Python 进程中可能出现的崩溃。
此外,如果您想从长时间运行的 Python 进程中多次调用某些已知会泄漏内存、打开文件或其他资源的代码,那么将其作为子进程运行可能是明智的选择。在这种情况下,每次子进程退出时,操作系统都会为您回收泄漏的内存或其他资源,而不是累积。
关于Python:子进程与 native API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19661874/