作者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
推 Lucemia:python幾乎可以看成只能用single thread的 01/08 02:01
推 huggie:GIL簡直是python killer. XD 01/08 16:18
→ AndCycle:N年前就有人做過把GIL拿掉的實驗了, 效能掉到一半不到 01/08 17:37
推 ya790206:我想問一下jython和IronPython有GIL嗎? 01/09 01:26
→ yjc1:無,只有cpython/pypy 有。pypy宣稱會拿掉GIL但優先度極低 01/09 02:08
→ StubbornLin:我記得好像有在這看到有提到GIL拿掉之類的 01/09 14:39
→ StubbornLin:不知道是不是我記錯 01/09 14:39
推 Lucemia:記得之前有實驗過, 拿掉gil multi thread 會變快沒錯 01/10 03:11
→ Lucemia:但single thread 速度變一半... 所以決定不動了 01/10 03:11
推 wawawa:unladen-swallow 已確定在 merge 回 py3k 前不動 GIL... 01/11 22:23