пакет

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

Синтаксис

pack
pack filename
pack('filename')

Описание

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

Внимание

Функция pack не может сохранить переменные, больше, чем 2 ГБ. Это очищает их от вашей рабочей области.

Не используйте функцию 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 Control Panel.

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

Смотрите также

|

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

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