큰 소스 코드 디렉토리 (10 만 개 파일)를 구문 분석합니다. 모든 파일의 모든 줄을 탐색하고 간단한 정규식 일치를 수행합니다. 이 작업을 여러 스레드로 스레딩하려고 시도했지만 속도가 향상되지 않았습니다. 멀티 프로세싱 만이 시간을 70 % 단축했습니다. 나는 GIL 죽음의 그립을 알고 있지만 스레드가 IO 바인딩 액세스를 도와야하지 않습니까?
디스크 액세스가 직렬 인 경우 여러 프로세스가 작업을 더 빨리 완료하는 이유는 무엇입니까?
파이썬 "스레드"는 독립적 인 실행 스레드를 허용하지만 일반적으로 전역 인터프리터 잠금으로 인해 동시성을 허용하지 않습니다. 실제로 한 번에 하나의 스레드 만 실행할 수 있습니다. 이것이 글로벌 인터프리터 잠금을 공유하지 않고 동시에 실행할 수있는 여러 프로세스로만 속도를 높이는 이유 일 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다