gpt4 book ai didi

python - 将 GILed Python 程序限制为单个 CPU 会提高性能吗?

转载 作者:太空宇宙 更新时间:2023-11-04 10:59:43 26 4
gpt4 key购买 nike

跟进 David Beazley's paper关于 Python 和 GIL,在基于 Windows 的多核系统中将 Python 程序(带有 GIL 的 CPython 和所有程序)限制为单个 CPU 是一个好习惯吗?

它会提高性能吗?

更新:假设使用了多个线程(不确定它是否有所不同)

最佳答案

该论文确实暗示将程序限制为单核会提高性能在特定情况下。但是,您需要处理许多问题:

  1. 他的测试主要针对计算密集型线程,而不是 IO 绑定(bind)线程。如果您使用的线程经常主动阻塞(例如在等待客户端的 Web 服务器中),那么您根本不会遇到 GIL 问题。
  2. GIL 问题专门针对线程 而不是进程。我可能读错了你的问题,但你似乎在问关于将所有 Python 程序限制在一个内核上的问题。使用进程实现并行性的程序不会遇到 GIL 问题,将它们限制为单核会使它们变慢。
  3. Python 3.2 中的 GIL 截然不同(正如 David 在 this video 中提到的那样。GIL 已明确更改以处理此类问题。虽然它仍然存在问题,但它不再有这个问题.

总而言之,您唯一想要通过强制操作系统将程序限制为单核来使您的生活复杂化的情况是在您运行:

  1. 多线程
  2. 计算密集型
  3. 低于 Python 3.2

在多核机器上编程。

关于python - 将 GILed Python 程序限制为单个 CPU 会提高性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6667750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com