0

我正在开发一台 Linux 多核机器,在该机器上我只需在命令行上使用解释器(实际上只是“python script.py”)同时多次调用相同的 Python 脚本。我发现即使我在机器资源范围内,性能也比单个调用慢得多。我相信这是因为实例通过全局解释器锁 (GIL) 共享解释器 - 即,无论如何,几个实例最终都运行“单核”。如果我对脚本的冻结 Python 二进制版本 ( http://wiki.python.org/moin/Freeze ) 做同样的事情,那也会发生吗?我不相信,因为二进制“带有自己的解释器”?

4

1 回答 1

3

你的信念是错误的。GIL 是流程全局的。独立的 CPython 进程不共享任何内容,甚至 GIL 也不共享。只有同一个进程中的线程竞争同一个全局锁。您看到的性能下降还有另一个原因。是的,对于冻结的可执行文件 IIUC,规则是相同的。

于 2013-04-13T13:07:40.073 回答