Linux에서는 대용량 파일의 압축을 풀 때 Windows에서는 압축을 풀면 메모리가 부족해지는 이유는 무엇입니까?

Linux에서는 대용량 파일의 압축을 풀 때 Windows에서는 압축을 풀면 메모리가 부족해지는 이유는 무엇입니까?

압축을 풀어야 하는 36GB .zip 파일이 있는데 압축을 푸는 동안 파일 휠의 oom(메모리 부족) 문제와 Ubuntu(20.04)를 새로 설치할 때 unzip 명령으로 인해 PC가 정지됩니다.

나도 시도했다:

  1. Windows 탐색기와 공식 7-Zip 바이너리를 사용하여 Windows에서 36GB .zip을 추출했는데 훌륭하게 작동했습니다. 그런 다음 .7z 형식을 사용하는 Windows에서 7-Zip을 사용하여 파일을 다시 압축하고 사전 크기가 512MB RAM이 있는 Raspberry Pi에서도 메모리가 부족하지 않을 만큼 충분히 작은지 확인합니다. 8MB 사전 크기는 LZMA1을 사용한 압축 해제에만 시간이 소요됨을 의미하므로 약 128MB의 RAM.

    이전 PC(2GB RAM, 최소 크기 pagefile.sys, Windows 10)의 Windows에서는 추출이 예상대로 작동하지만 파일 롤러와 8GB 스왑 공간을 사용하는 8GB RAM PC의 Ubuntu에서는 여전히 실패합니다. 붐 상황에 직면했기 때문입니다.

    또한 우분투에서 일이 한동안 계획대로 진행되는 동안(예: 필요한 소량의 RAM(약 128MB)만 사용) 상황이 갑자기 나빠지고 30초도 채 안 되어 RAM이 작동하지 않는 것을 발견했습니다. 8GB 중 스왑 공간을 사용할 수 있습니다.

  2. Debian에서 동일한 .zip 및 .7z 추출을 수행했지만 여전히 실패했습니다.

tracker-extract또한 가져오는 동안 RAM 스파이크 로 인해 처음으로 oom 문제가 발생했는데 , 이는 gnome-photo인덱서였습니다. 따라서 여기서 주요 문제에 직면하기 전에 tracker*패키지를 제거하면 이미 문제의 절반이 해결되었습니다.

그래서 질문은: Windows와 Linux에서 거대한 .zip 또는 .7z의 압축을 푸는 것이 왜 다른가요?


업데이트 1:

문제는 대부분 해결되었습니다(주석을 찾아보니 tmps출력 폴더 대신 무언가를 사용하여 대부분 작업 디렉터리 문제였지만 모든 것을 완전히 확인하려면 계속 테스트해야 합니다. 간단히 말해서: 변경할 수 있는 아카이버를 사용했습니다.) xarchiver 또는 PeaZip과 같은 작업 파일 폴더.

관련 정보