방금 해커 뉴스에 this section of Unladen Swallow's documentation이 표시되었습니다. 기본적으로 Google 엔지니어는 GIL 제거에 대해 낙관하지 않는다고 말합니다. 그러나 GIL에 관한이 이야기에 산재 해있는 가비지 컬렉터에 대한 논의가있는 것처럼 보입니다. 누군가 나에 대한 관계를 설명 할 수 있을까요?파이썬의 GIL은 가비지 컬렉터와 어떤 관련이 있습니까?
답변
정말 짧은 버전은 현재 참조 계산 + 표시 & 스위프 사이클 수집기 스키마 (처리량 대신)에 최적화 된 메모리를 관리한다는 것입니다.
이것은 하나의 돌연변이 스레드 만있는 경우 모두 괜찮지 만 멀티 스레드 시스템에서는 refcounts를 수정하는 모든 시간을 동기화해야합니다. 그렇지 않으면 값이 "균열을 넘어"있습니다. 동기화 프리미티브는 현대 하드웨어에서 상당히 비쌉니다.
refcounts가 자주 변경되지 않으면 문제가되지 않지만 cpython에서 수행하는 거의 모든 작업이 refcount를 어딘가에서 변경할 수 있으므로 옵션은 GIL, 일부는 refcounts 일종의 동기화 (그리고 문자 그대로 동기화에 거의 모든 시간을 보냅니다), 또는 실제 가비지 컬렉터의 일종에 대한 참조 계산 시스템을 버리십시오.
참치 물고기의 대답은 기본적으로 그것을 다룹니다. http://mail.python.org/pipermail/python-ideas/2009-October/006264.html
해당 링크의 제안은 순진합니다. 참조 카운팅을 위해 비교 및 교체를 사용하는 것이 너무 느립니다. –
난 그냥 여기에이 주제에 다른 관점을 발견 : 당신이 더 많은 정보를 원하는 경우, GIL 너무 기준에 많은 효과을 을 가지고 여기에 계산하지 않고 제거 할 수있는 방법에 대한 논의가 있었다 http://renesd.blogspot.com/2009/12/python-gil-unladen-swallow-reference.html
- 1. CFRetain는 가비지 컬렉터와 C 문자열을 사용
- 2. 핸들은 스레드와 어떤 관련이 있습니까?
- 3. BCL은 CLS와 어떤 관련이 있습니까?
- 4. Python GIL은 실제로 인터프리터마다 있습니까?
- 5. 메시지 브리지는 Weblogic의 대기열과 어떤 관련이 있습니까?
- 6. armel은 무엇이며 armel은 arm과 어떤 관련이 있습니까?
- 7. cURL은 웹 서비스와 어떤 관련이 있습니까?
- 8. 더블린이란 무엇이며 더블린은 WCF와 어떤 관련이 있습니까?
- 9. ninject.extensions.interception을 통한 AOP는 ninject와 어떤 관련이 있습니까?
- 10. JavaScript '통화'란 무엇이며 효율성과 어떤 관련이 있습니까?
- 11. 카피 스트라 노는 레이크와 어떤 관련이 있습니까?
- 12. GNU Classpath는 libgcj와 어떤 관련이 있습니까?
- 13. ExecutionContext 클래스는 "컨텍스트"와 어떤 관련이 있습니까?
- 14. Google 다트는 Google 폐쇄와 어떤 관련이 있습니까?
- 15. Zend는 PHP와 관련이 있습니까? jQuery는 javascript와 관련이 있습니까?
- 16. HttpApplication 이벤트 흐름은 멤버십 및 쿠키와 어떤 관련이 있습니까?
- 17. 이 Perl 한 줄 필터는 가져온 XML과 어떤 관련이 있습니까?
- 18. 원격 프로 시저 호출은 웹 서비스와 어떤 관련이 있습니까?
- 19. 'Windows'라는 단어가 'Windows Communication Foundation'이라는 용어와 어떤 관련이 있습니까?
- 20. oracle 데이터 유형 = 숫자, 지수는 정밀도와 스케일과 어떤 관련이 있습니까?
- 21. XML 네임 스페이스 란 무엇이며 스프링 트랜잭션과 어떤 관련이 있습니까?
- 22. Android의 Java 버전은 Java SE 버전과 어떤 관련이 있습니까?
- 23. Rowlex는 Protege와 어떤 관련이 있으며 OWL을위한 다른 .NET 오퍼링이 있습니까?
- 24. NVAPI 장치 ID는 CUDA 장치 ID와 어떤 관련이 있습니까?
- 25. og : image 메타 데이터는 Facebook Like iframe과 어떤 관련이 있습니까?
- 26. DLL/SO 라이브러리, 라이브러리 메모리가 호출 프로세스와 어떤 관련이 있습니까?
- 27. Clipboard 또는 SendKeys 클래스는 WinForms와 어떤 관련이 있습니까?
- 28. 시맨틱 웹은 ASP.NET MVC 웹 개발과 어떤 관련이 있습니까?
- 29. ActionScript 버전은 Adobe의 Flash 제품과 어떤 관련이 있습니까?
- 30. 하트 비트 디자인 패턴이란 무엇입니까? ASP.NET 세션과 어떤 관련이 있습니까?
글쎄, GIL에 대해 읽어보십시오. http://wiki.python.org/moin/GlobalInterpreterLock 보시다시피이 모든 것은 메모리 관리에 관한 것입니다. –