作者yjc1 (..........)
看板Python
标题Re: [资讯] David Beazley 对 GIL 的分析
时间Thu Jan 7 21:37:02 2010
http://www.dabeaz.com/blog/2010/01/python-gil-visualized.html
Dave 预定在 PyCon 继续讲 GIL 的话题。
看起来在 cpu bound thread *2 on 2 core 的情况下,GIL会吃掉一整个 core
而 I/O bound thread 则是很难抢到 GIL,latency 爆高。
结论是 python thread 不适合多 core 的环境。阿门。
※ 引述《yjc1 (..........)》之铭言:
: http://www.dabeaz.com/python/GIL.pdf
: 摘要:
: *. GIL 对 CPU-bound thread 影响甚大
: 我猜会有人提 python 上多为 IO-bound thread 所以没关系
: *. GIL thread contention / signaling overhead 极大.
: *. GIL thread 在 multi-core 上的表现比 single core 的更差
: 也就是核越多就越慢…?!相当违反直觉
: *. GIL code 从 1.5.2 开始到 3.0 约十年间看起来没动过
: 感想:
: 嗯,稳定就好、能动就好……
--
okok, 还有 multiprocessing 这东西可用,只是……王道复古?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.23.102
1F:推 Lucemia:python几乎可以看成只能用single thread的 01/08 02:01
2F:推 huggie:GIL简直是python killer. XD 01/08 16:18
3F:→ AndCycle:N年前就有人做过把GIL拿掉的实验了, 效能掉到一半不到 01/08 17:37
4F:推 ya790206:我想问一下jython和IronPython有GIL吗? 01/09 01:26
5F:→ yjc1:无,只有cpython/pypy 有。pypy宣称会拿掉GIL但优先度极低 01/09 02:08
7F:→ StubbornLin:我记得好像有在这看到有提到GIL拿掉之类的 01/09 14:39
8F:→ StubbornLin:不知道是不是我记错 01/09 14:39
9F:推 Lucemia:记得之前有实验过, 拿掉gil multi thread 会变快没错 01/10 03:11
10F:→ Lucemia:但single thread 速度变一半... 所以决定不动了 01/10 03:11
11F:推 wawawa:unladen-swallow 已确定在 merge 回 py3k 前不动 GIL... 01/11 22:23