pack

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

Синтаксис

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 в открытой группе UNIX® платформы, попросите вашего системного менеджера увеличить пространство обмена.

  • На Microsoft® Windows® платформы, увеличение виртуальной памяти с помощью Панели управления Windows Control Panel.

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

См. также

|

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