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