2012-08-25 2 views
0

크기가 6,8GB 인 파일에 loadtxt('x.txt', delimiter=' ')을 사용하려고합니다. 이로 인해 메모리 오류가 발생합니다. 내 컴퓨터에는 8GB 메모리가 있습니다. 컴퓨터 성능 측정기를 보면 파이썬이 메모리의 3,4GB 만 사용되면 이미 오류 메시지를 표시합니다. 왜 파이썬은 포기하기 전에 나머지 4,6 GB를 사용하려고하지 않습니까?out of memory whilt with loadtxt

너!

당 P.는

+0

실행중인 Python 버전은 무엇입니까? 어느 OS? –

답변

0

은 파이썬은 아마 4GB 이상의 메모리를 처리 할 수 ​​있도록 32 비트 아키텍처로 컴파일됩니다. 이 문제를 해결하려면 64 비트 OS에서 64 비트 Python을 설치하십시오.

추신. 그는 일부 주소 공간이 예약되어 있기 때문에 3.4GB (4GB가 아님)를 포기합니다.

+0

좋아요, 64 비트 버전을 사용해 보겠습니다! 감사! –

2

해당 사항은 numpy.loadtxt입니까? source code을 보면 배열로 패킹하기 전에 구문 분석 된 행 (지정된 유형의 목록 또는 튜플)을 목록으로 푸시합니다. 이것은 파일의 크기보다 더 많은 메모리를 소비하거나 심지어 파일의 값을 포함하는 압축 된 float 배열의 크기를 소비합니다. 나는 당신이 8GB RAM 머신에서 64 비트 파이썬으로도이 파일을로드 할 수있을 것 같지 않다고 말하고 싶다.

+0

스왑 파티션에서 작동해야합니다. SWAP은 배열 /리스트보다'for' 루프를 사용하면 꽤 잘 작동 할 것입니다. –