디스크에 많은 파일이 있어야합니다. 첫 번째 옵션은 멀티 스레드를 사용하며, SSD에서 매우 잘 수행됩니다. (스레드가 IO에 의해 차단되었을 때 GIL을 해제 할 때)파이썬 멀티 스레드는 읽기 전용 메모리 버퍼 바이 패스를 읽습니다. GIL
그러나 SSD가 없으면 속도를 향상시키고 싶기 때문에 (예를 들어 저장소에 저장하는 것처럼) 메모리에 미리로드하고 모든 스레드가 각 파일을 읽습니다. 메모리의 내용 불행하게도, GIL 때문에 아마도 dict에 자물쇠가있어, 그 속도는 SSD에서 파일을로드하는 것보다 더 느립니다!
내 질문에 어떤 솔루션을 잠금/GIL없이 읽기 전용 메모리 버퍼를 만들 수 있습니다? 램 디스크 같은 것>
가능한 한 많은 속도를 원한다면 C 또는 C++ 또는 완전히 다른 언어로 컴파일 된 프로그램 (또는 속도가 중요한 부분)을 다시 작성하는 것이 어떻습니까? 그렇다면 네이티브 실행 파일을 실행할 것이기 때문에 GIL과 인터프리터 오버 헤드가 전혀 없습니다. –