2

В WinXP 32bit с процессором Core i5 (двухъядерный) и 4 ГБ ОЗУ я пытаюсь создать архив .xz из файла журнала размером 266 МБ, используя 7-Zip (GUI) на уровне сжатия "ultra" (метод: LZMA2, словарь размер: 48 МБ, размер слова: 64, потоки ЦП: 4/4) с расчетной памятью для сжатия: 1680 МБ и для распаковки: 50 МБ.

Это не работает, так как я всегда получаю сообщение об ошибке "Система не может выделить необходимый объем памяти" независимо от фактического использования памяти. В 7-Zip FAQ упоминается ограничение 2 ГБ на выделенное виртуальное пространство, но заданная "память для сжатия" значительно ниже этого предела.

Кто-нибудь знает, что происходит?

2 ответа2

1

32-битный процесс (в 32-битной Windows) имеет 2 ГБ адресного пространства. НО: Это пространство будет фрагментировано! Здесь есть код, некоторые библиотеки DLL и ваши данные (и ...), между которыми есть довольно большие промежутки.

Если 1680 МБ должно быть одним блоком, маловероятно, что там так много свободного адресного пространства : распределение не выполняется. Это происходит регулярно, если размер одного запрашиваемого блока превышает 1 ГБ. Другими словами: вы не можете выделить один блок размером 1 ГБ, но вы можете выделить один 700 МБ и один с 300 МБ.

В пакете sysinternals есть инструмент "vmmap", который можно использовать для отображения макета адреса процесса, включая свободное место.

0

Как упоминалось в других ответах, 32-битная не может адресовать кусок памяти более 2 ГБ (теоретически), поэтому вам нужно использовать 64-битную версию 7-Zip. Вы можете скачать его здесь

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .