Консолидируйте память рабочей области
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
в функции.