2

如果两个选项都可用:使用子进程(例如 hg)调用命令行工具或使用本机 python API(例如 mercurial API),是否存在使用前者更有利的情况?

4

2 回答 2

3

如果您想执行一些您知道不稳定且可能因 segvault 崩溃的第三方本机代码,那么最好将其作为子进程执行 - 您将能够安全地处理 Python 进程可能发生的崩溃。

此外,如果您想从长时间运行的 Python 进程中多次调用一些已知会泄漏内存、保留打开文件或其他资源的代码,那么再次将其作为子进程运行可能是明智之举。在这种情况下,每次子进程退出时,操作系统都会为您回收泄漏的内存或其他资源,而不是累积。

于 2013-10-29T15:13:16.603 回答
1

我看到自己使用子进程而不是本机 python api 的唯一方法是,如果 api 中没有提供程序的某些选项。

于 2013-10-29T15:08:50.537 回答