Unladen Swallow のドキュメントのこのセクションがHacker News に掲載されているのを見たところです。基本的に、GIL の削除について楽観的ではないと言っているのは Google のエンジニアです。しかし、GIL についてのこの話が散在しているガベージ コレクターについての議論があるようです。誰か私との関係を説明してくれませんか?
3 に答える
非常に短いバージョンは、現在、Python が参照カウント + マーク & スイープ サイクル コレクター スキームを使用してメモリを管理し、(スループットではなく) レイテンシに対して最適化されていることです。
変化するスレッドが 1 つしかない場合はこれで問題ありませんが、マルチスレッド システムでは、refcount を変更するたびに同期する必要があります。現代のハードウェアでは高価です。
refcounts がそれほど頻繁に変更されていない場合、これは問題にはなりませんが、cpython で実行するほぼすべての操作によって、refcounts がどこかで変更される可能性があるため、オプションは GIL であり、ある種の同期を使用して refcounts を実行します (文字通りほぼすべての時間を同期に費やす)、またはある種の実際のガベージ コレクターのために refcounting システムを捨てます。
Tuna-Fishの答えは基本的にそれをカバーしています。詳細が必要な場合は、ここで参照カウントにあまり影響を与えずに GIL を削除する方法についての議論がありました: http://mail.python.org/pipermail/python-ideas/2009-October/ 006264.html
ここで、この件に関する別の視点を見つけました: http://renesd.blogspot.com/2009/12/python-gil-unladen-swallow-reference.html