【发布时间】:2011-07-12 16:34:26
【问题描述】:
跟进David Beazley's paper 关于 Python 和 GIL 的内容,在基于 Windows 的多核系统中将 Python 程序(带有 GIL 的 CPython 等)限制为单个 CPU 是否是一个好习惯?
它会提高性能吗?
更新:假设使用了多个线程(不确定是否有所不同)
【问题讨论】:
-
CPython 只能使用一个 CPU - 那么为什么“限制”到单个 CPU 呢???
-
是的,Blackmoon 是对的。如果你想使用多核,那么你必须使用多处理模块之类的东西。
-
@Blackmoon,通过阅读链接的论文,我认为这不是真的。特别是结帐第 37 页。
-
我不需要阅读论文 - 自 1993 年第一次使用 CPython 以来,GIL 和 CPython 的这一事实是正确的,我从 1993 年开始使用 CPython。你的假设是错误的,或者你是误读了一些东西。
-
它仅限于在任何给定时刻运行的单个线程(除非使用扩展或其他技巧),但我不确定操作系统是否必须在同一个 CPU 上运行它们,从而产生惩罚。我可能误解了大卫的论文,在这种情况下,请纠正我对它的理解