openstreetmap xml 파일을 사용하여 일반적으로 원래 크기의 약 10 % 인 이진 런타임 렌더링 형식으로 변환하는 변환기를 작성했습니다. 입력 파일 크기는 일반적으로 3GB 이상입니다. 입력 파일은 한번에 메모리에로드되지 않지만 점으로 스트림되어 polys가 수집 된 다음 bsp가 실행되고 파일이 출력됩니다. 최근에는 더 큰 파일의 경우 메모리가 부족하고 죽습니다 (문제의 파일은 1400 만 포인트와 1 백만 개의 다각형). 일반적으로 내 프로그램은 약 1GB에서 1.2GB의 RAM을 사용합니다. 나는 가상 메모리를 2에서 8GB로 늘리려고했지만 (XP에서는)이 변화가 아무런 효과가 없었다. 또한이 코드는 오픈 소스이므로 사용 가능한 램 (느리지 만)에 관계없이 작동하도록하고 싶습니다. Windows, Linux 및 Mac에서 실행됩니다.메모리 사용량이 많은 응용 프로그램에서 메모리가 부족하지 않도록하려면 어떻게해야합니까?
메모리가 부족하지 않도록 어떤 기술을 사용할 수 있습니까? 작은 하위 집합으로 데이터를 처리 한 다음 최종 결과를 병합 하시겠습니까? 내 자신의 가상 메모리 유형의 처리기를 사용하고 있습니까? 다른 아이디어?
Windows는/LARGEADDRESSAWARE와 함께 3GB의 가상 공간을 가질 수 있습니다. –
플래그는 OS가 제공 할 수있는 경우 프로세스가 최대 4GB *를 사용할 수있게합니다 *. 일반적으로 Windows는 여전히 각 프로세스에 2GB 만 제공하도록 설정되어 있습니다. 드라이버 불안정성의 위험이 있으므로 3GB를 제공하기 위해이를 변경할 수도 있습니다. PAE를 사용하면 더 많은 것을 얻을 수 있습니다. 그러나 64 비트는 아마도 더 나은 내기 일 것입니다. – jalf
Imho, 세 번째 옵션이 가장 중요합니다. 메모리를 제어하는 것 외에도 병렬 처리가 가능합니다. – xtofl