나는 python1.py와 python2.py라는 큰 변수를 서로 통신해야하는 두 개의 python 스크립트를 가지고있다.파이썬 - 메모리에서 변수를 가져 오는 중?
python1.py가 실행 중이고 매우 큰 목록 변수 'x'가 생성되었다고 가정 해 보겠습니다. 지금은 하드 드라이브에 'x'를 저장하고 python2.py를 실행하기 위해 하위 프로세스를 사용하여 하드 드라이브에서 'x'를로드합니다. (두 개의 다른 파이썬 파일이 필요합니다. 계산을 병렬화하기 위해).
메모리에 대한 포인터 인 인수를 사용하여 python2.py를 호출 한 다음 python2.py에서 직접 메모리를 기반으로 'x'를 만들 수있는 대체 방법이 있습니까?
두 번째 스크립트를 실행하려면 생성기 스크립트 ('x' 목록 생성)를 사용하고 있습니까? "매우 큰"크기는 얼마입니까? 계산의 중요도가 중요합니까? –
mmap이이를 수행 할 수 있어야합니다. 이 기사가 도움이 될 것입니다 : http://blog.schmichael.com/2011/05/15/sharing-python-data-between-processes-using-mmap/ – Lanting
이것이 리눅스 인 경우, python2를 가져 와서 다중 처리 모듈을 사용할 수 있습니다 당신이 거기서 달리고 싶은 기능을 포크하십시오. 리눅스에서는 포크 할 때 동일한 메모리를 사용하므로 직렬화 할 필요가 없습니다. Windows에서 mp는 어쨌든 직렬화되므로 실제 이점이 없습니다. – tdelaney