exponenta event banner

пакет

Консолидация памяти рабочей области

Синтаксис

pack
pack filename
pack('filename')

Описание

pack освобождает необходимое пространство, реорганизуя информацию так, чтобы она использовала только необходимый минимум памяти. Сохраняются все переменные из базовых и глобальных рабочих областей, которые меньше 2GB. Для всех постоянных переменных, определенных в то время, устанавливается значение по умолчанию (пустая матрица, []).

Внимание

pack функция не может сохранить переменные, превышающие 2GB. Они удаляются из рабочей области.

Не используйте pack с объектами, определяющими события и прослушиватели.  pack вызывает деструктор всех прослушивателей, определенных для объектов в рабочей области. Сведения о восстановлении прослушивателей при сохранении объектов см. в разделе Восстановление прослушивателей.

Программа MATLAB ® временно сохраняет данные рабочей области в файле с именемtp######.mat (где ###### - числовое значение), которое находится во временной папке. (Можно использовать команду dir(tempdir) для просмотра файлов в этой папке).

pack filename освобождает место в памяти, временно сохраняя данные рабочей области в файле, указанном filename. Этот файл находится в текущей рабочей папке и, если не указано иное, имеет .mat расширение файла.

pack('filename') - функциональная форма pack.

Примеры

Измените текущую папку на доступную для записи, запустите packи вернитесь в предыдущую папку.

cwd = pwd;
cd(tempdir);
pack
cd(cwd)

Совет

Можно только запустить pack из командной строки MATLAB.

Если указать filename , этот файл должен находиться в папке, для которой у вас есть разрешение на запись.

pack функция не влияет на объем памяти, выделенной процессу MATLAB. Чтобы освободить эту память, необходимо выйти из MATLAB.

Так как MATLAB использует кучный метод управления памятью, расширенные сеансы MATLAB могут привести к фрагментации памяти. Когда память фрагментирована, может быть достаточно свободного пространства, но недостаточно для хранения новой большой переменной.

Если вы получите Out of memory сообщение от MATLAB, pack функция может найти вам свободную память, не заставляя вас удалить переменные.

pack функция освобождает пространство

  • Сохранение всех переменных в базовой и глобальной рабочих областях во временном файле.

  • Удаление всех переменных и функций из памяти.

  • Перезагрузка базовых и глобальных переменных рабочей области из временного файла и последующее удаление файла.

Если вы используете pack и все еще недостаточно свободной памяти для продолжения, необходимо очистить некоторые переменные. Если часто не хватает памяти, можно выделить более крупные матрицы ранее в сессии MATLAB и использовать эти системные советы.

  • При запуске MATLAB на платформах Open Group UNIX ® попросите системного менеджера увеличить пространство подкачки.

  • На платформах Microsoft ® Windows ® увеличьте виртуальную память с помощью панели управления Windows.

Для ведения постоянных переменных при запуске пакета используйте mlock в функции.

См. также

|

Представлен до R2006a