Отобразите информацию о памяти
memory
userview = память
[userview, systemview] = память
Функция memory
доступна только в системах Microsoft® Windows®. Результаты зависят от вашего компьютерного оборудования и нагрузки на ваш компьютер.
memory
отображает информацию, показывающую, сколько памяти доступно и сколько в настоящее время использует MATLAB. Информация, отображенная за вашим монитором, включает следующие элементы, каждый из которых описан в разделе ниже:
userview = memory
возвращает фокусируемую пользователями информацию об использовании памяти в структуре userview
. Информация, возвращенная в userview
, включает следующие элементы, каждый из которых описан в разделе ниже:
[userview,systemview] = memory
возвращает и пользователя - и фокусируемую на системе информацию об использовании памяти в структурах userview
и systemview
, соответственно. Структура userview
описана в синтаксисе команд выше. Информация, возвращенная в systemview
, включает следующие элементы, каждый из которых описан в разделе ниже:
Каждый из разделов ниже описывает значение, которое отображено или возвращено функцией memory
.
Максимальный Возможный Массив является размером самого большого непрерывного блока свободной памяти. По сути, это - верхняя граница на самом большом едином массиве, который MATLAB может создать в это время.
MATLAB выводит этот номер от меньших из следующих двух значений:
Самый большой непрерывный блок памяти найден в виртуальном адресном пространстве MATLAB
Общая доступная системная память
Чтобы видеть, сколько представляют элементы массива этот номер, разделитесь на количество байтов в классе массивов. Например, для массива double
, разделитесь на 8. Фактическое число элементов, которое может создать MATLAB, всегда является меньше, чем этот номер.
При вводе команду memory
, не присваивая ее вывод, MATLAB отображает эту информацию в Командном окне. Когда вы действительно присваиваете вывод, MATLAB возвращает информацию в поле структуры. См. приведенную ниже таблицу.
Команда | Возвращенный в |
---|---|
memory | Вектор символа маркировал Maximum possible array: |
user = memory | Поле Structure user.MaxPossibleArrayBytes |
Все значения с двойной точностью и в модулях байтов.
При вводе команду memory
, не задавая выходных параметров, MATLAB может также отобразить одну из следующей сноски в 64-битных системах:
Limited by System Memory (physical + swap file) available.
Существует недостаточная системная память, чтобы позволить сопоставлять всех виртуальных адресов в самом большом доступном блоке процесса MATLAB.
Память, Доступная для Всех Массивов, является общей суммой памяти, доступной, чтобы содержать данные. Доступный объем памяти, как гарантируют, будет, по крайней мере, столь же большим как это поле.
MATLAB выводит этот номер от меньших из следующих двух значений:
Общее доступное виртуальное адресное пространство MATLAB
Общая доступная системная память
При вводе команду memory
, не присваивая ее вывод, MATLAB отображает эту информацию в Командном окне. Когда вы действительно присваиваете вывод, MATLAB возвращает информацию в поле структуры. См. приведенную ниже таблицу.
Команда | Возвращенный в |
---|---|
memory | Вектор символа маркировал Memory available for all arrays: |
user = memory | Поле Structure user.MemAvailableAllArrays |
При вводе команду memory
, не задавая выходных параметров, MATLAB может также отобразить следующую сноску в 64-битных системах:
Limited by System Memory (physical + swap file) available.
Существует недостаточная системная память, чтобы позволить сопоставлять всех доступных виртуальных адресов в процессе MATLAB.
Память, Используемая MATLAB, является общей суммой системной памяти, зарезервированной для процесса MATLAB. Это - сумма физической памяти и потенциального использования файла подкачки.
При вводе команду memory
, не присваивая ее вывод, MATLAB отображает эту информацию в Командном окне. Когда вы действительно присваиваете вывод, MATLAB возвращает информацию в поле структуры. См. приведенную ниже таблицу.
Команда | Возвращенный в |
---|---|
memory | Вектор символа маркировал Memory used by MATLAB: |
user = memory | Поле Structure user.MemUsedMATLAB |
Физическая память является доступными и общими суммами физической памяти (RAM) на компьютере рабочий MATLAB.
При вводе команду memory
, не присваивая ее вывод, MATLAB отображает общую память в Командном окне. Когда вы действительно присваиваете вывод, MATLAB возвращает и доступную и общую память в поле структуры. См. приведенную ниже таблицу.
Команда | Значение | Возвращенный в |
---|---|---|
memory | Общая память | Вектор символа маркировал Physical Memory (RAM): |
[user,sys] = memory | Доступная память | Поле Structure sys.PhysicalMemory.Available |
Общая память | Поле Structure sys.PhysicalMemory.Total |
Доступная физическая память эквивалентна Доступный найденный в Windows Task Manager: производительность/Физическая память и общая физическая память совпадают с Общим количеством.
Можно использовать сумму доступной физической памяти как мера того, к какому количеству данных можно получить доступ быстро.
Виртуальное адресное пространство является суммой доступной и общей виртуальной памяти для процесса MATLAB. MATLAB возвращает информацию в двух полях структуры возврата: Available
и Total
.
Команда | Возвращаемое значение | Возвращенный в поле структуры |
---|---|---|
[user,sys] = memory | Доступная память | sys.VirtualAddressSpace.Available |
Общая память | sys.VirtualAddressSpace.Total |
Можно контролировать различие:
VirtualAddressSpace.Total - VirtualAddressSpace.Available
когда Виртуальные Байты возражают в Windows Performance Monitor (e. g., Windows 7 Control Panel / Administrative Tools/Performance Monitor). Если вы добавляете счетчик, Виртуальный счетчик Байтов найден в соответствии с меню Process. Выберите счетчик, и затем выберите MATLAB из Экземпляров панели выбранного объекта.
Системная память является суммой доступной системной памяти на вашей компьютерной системе. Этот номер включает сумму доступной физической памяти и сумму доступного пробела файла подкачки на компьютере рабочий MATLAB. MATLAB возвращает информацию в поле SystemMemory
структуры возврата.
Команда | Возвращаемое значение | Возвращенный в поле структуры |
---|---|---|
[user,sys] = memory | Доступная память | sys.SystemMemory |
Это совпадает с различием:
limit - total (in bytes)
найденный в Windows Task Manager: Заряд производительности/Фиксации.
Отобразите статистику памяти по 64-битной системе Windows:
memory
Maximum possible array: 14253 MB (1.495e+10 bytes) * Memory available for all arrays: 14253 MB (1.495e+10 bytes) * Memory used by MATLAB: 747 MB (7.833e+08 bytes) Physical Memory (RAM): 12279 MB (1.288e+10 bytes) * Limited by System Memory (physical + swap file) available.
Возвратите в структуре userview
, информацию о самом большом массиве, который MATLAB может создать в это время, сколько памяти доступно, чтобы, в настоящее время содержать данные и объем памяти используясь вашим процессом MATLAB:
userview = memory
userview = MaxPossibleArrayBytes: 1.4957e+10 MemAvailableAllArrays: 1.4957e+10 MemUsedMATLAB: 784044032
Присвойте вывод двум структурам, user
и sys
, чтобы получить информацию, показанную здесь:
[user,sys] = memory;
% --- Largest array MATLAB can create ---
user.MaxPossibleArrayBytes
ans = 1.4956e+10
% --- Memory available for data ---
user.MemAvailableAllArrays
ans = 1.4956e+10
% --- Memory used by MATLAB process ---
user.MemUsedMATLAB
ans = 784039936
% --- Virtual memory for MATLAB process ---
sys.VirtualAddressSpace
ans = Available: 8.7910e+12 Total: 8.7961e+12
% --- Physical memory and paging file ---
sys.SystemMemory
ans = Available: 1.4956e+10
% --- Computer's physical memory ---
sys.PhysicalMemory
ans = Available: 2.7093e+09 Total: 1.2876e+10
MATLAB вычисляет значение для Памяти, Используемой MATLAB путем обхода структур памяти процесса MATLAB и подведения итогов всех разделов, которым выделили физическое устройство хранения данных в памяти или в страничном файле на диске.
Используя Windows Task Manager, вы имеете для изображения MATLAB.exe:
Mem Usage < MemUsedMATLAB < Mem Usage + VM Size (in bytes)
где оба из следующего верны:
Mem Usage
является размером рабочего набора в килобайтах.
VM Size
является использованием файла подкачки или частными байтами, в килобайтах.
Размер рабочего набора является фрагментом виртуального адресного пространства MATLAB, которое является в настоящее время резидентским в RAM и может быть сослано без отказа страницы памяти. Использование файла подкачки дает фрагмент виртуального адресного пространства MATLAB, которое требует резервного копирования, которое уже не существует. Другое имя для использования файла подкачки является частными байтами. Это включает все переменные MATLAB и рабочие области. Поскольку некоторые страницы в файле подкачки могут также быть частью рабочего набора, эта сумма является переоценкой MemUseMATLAB
. Обратите внимание на то, что существуют виртуальные страницы на пробеле процесса MATLAB, которые уже имеют резервное копирование. Например, код, загруженный от EXEs и DLLs и файлов с отображенной памятью. Если какая-либо часть тех файлов будет в памяти, когда встроенная память будет названа, та память будет считаться как часть MemUsedMATLAB
.
Зарезервированные адреса являются адресами, откладывает в виртуальном адресном пространстве процесса для некоторого определенного будущего использования. Эти зарезервированные адреса уменьшают размер MemAvailableAllArrays
и могут уменьшить размер текущего или будущего значения MaxPossibleArrayBytes
.
При запуске MATLAB часть виртуального адресного пространства MATLAB резервируется Виртуальной машиной Java® (JVM™) и не может использоваться для хранения массивов MATLAB.
MATLAB, по умолчанию, использует стандартный диспетчер "кучи" Windows за исключением набора небольших предварительно выобранных размеров выделения. Одна характеристика этого диспетчера "кучи" - то, что его поведение зависит от того, является ли требуемое выделение меньше, чем или больше, чем постоянное число 524 280 байтов. Поскольку, пример, если вы создаете последовательность массивов MATLAB, каждый меньше чем 524 280 байтов, и затем очищаете их всех, значение MemUsedMATLAB
до и после показов мало изменения и значение MemAvailableAllArrays
, теперь меньше общим выделенным местом.
Результат состоит в том, что, вместо того, чтобы глобально освободить дополнительную память, память становится зарезервированной. Это может только быть снова использовано для массивов меньше чем 524 280 байтов. Вы не можете исправить эту память для большего массива кроме путем перезапуска MATLAB.