Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

In WinXP 32bit with a Core i5 (dual core) and 4GB RAM, I'm trying to create an .xz archive from a 266MB log file using 7-Zip (GUI) on the "ultra" compression level (method: LZMA2, dictionary size: 48MB, word size: 64, CPU threads: 4/4) with calculated memory for compressing: 1680MB, and for decompressing: 50MB.

This does not work, as I always get an error saying "The system cannot allocate the required amount of memory" regardless of actual memory usage. The 7-Zip FAQ mentions a 2GB restriction on allocated virtual space, but the given "memory for compression" is well under that limit.

Does anyone know what's going on?

share|improve this question
add comment

2 Answers

up vote 1 down vote accepted

A 32 Bit process (on a 32 Bit Windows) has 2GB address space. BUT: That space will be fragmented! There is the code, some DLLs, and your data (and ...), all with some rater large gaps in between.

If the 1680 MB needs to be a single block, it is rather unlikely that there is so much address space free: Allocation fails. This happens regularly if one single requested block is bigger than about 1 GB. In other words: You cannot allocate one single 1GB block, but you could maybe one 700 MB and one with 300 MB.

There is the "vmmap" tool in the sysinternals suite, which you can use to display the address layout of a process, including free space.

share|improve this answer
add comment

As mentioned in the other answers, the 32 bit can not address a memory chunk of more that 2GB (theoretically), so you need to use 64 bit version of 7-Zip. You can download it from here

share|improve this answer
    
Thanks for the reply. At the time however, as stated in the question, this was on a 32bit machine. –  wes Jun 14 at 2:37
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.