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