memory

Отобразите информацию о памяти

Синтаксис

memory
userview = memory
[userview,systemview] = memory

Ограничения

  • 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, является общей суммой системной памяти, зарезервированной для процесса MATLAB. Это - сумма физической памяти и потенциального использования файла подкачки.

При вводе memory команда, не присваивая ее выход, MATLAB отображает эту информацию в Командном окне. Когда вы действительно присваиваете выход, MATLAB возвращает информацию в поле структуры. См. приведенную ниже таблицу.

КомандаВозвращенный в
memoryВектор символов пометил Memory used by MATLAB:
user = memoryПоле Structure user.MemUsedMATLAB

Физическая память (RAM)

Физическая память является доступными и общими суммами физической памяти (RAM) на компьютере рабочий MATLAB.

При вводе memory команда, не присваивая ее выход, MATLAB отображает общую память в Командном окне. Когда вы действительно присваиваете выход, MATLAB возвращает и доступную и общую память в поле структуры. См. приведенную ниже таблицу.

КомандаЗначениеВозвращенный в
memoryОбщая памятьВектор символов пометил Physical Memory (RAM):
[user,sys] = memoryДоступная памятьПоле Structure sys.PhysicalMemory.Available
Общая памятьПоле Structure sys.PhysicalMemory.Total

Доступная физическая память совпадает с Available, найденным в Windows Task Manager: производительность/Физическая память и общая физическая память совпадают с Total.

Можно использовать сумму доступной физической памяти как мера того, к какому количеству данных можно получить доступ быстро.

Виртуальное адресное пространство

Виртуальное адресное пространство является суммой доступной и общей виртуальной памяти для процесса MATLAB. MATLAB возвращает информацию в двух полях структуры возврата: Available и Total.

КомандаВозвращаемое значениеВозвращенный в поле структуры
[user,sys] = memoryДоступная памятьsys.VirtualAddressSpace.Available
Общая памятьsys.VirtualAddressSpace.Total

Можно контролировать различие:

VirtualAddressSpace.Total - VirtualAddressSpace.Available

когда Виртуальные Байты возражают в Windows Performance Monitor (например, Windows 7 Control Panel / Administrative Tools/Performance Monitor). Если вы добавляете счетчик, счетчик Virtual Bytes найден в соответствии с меню Process. Выберите счетчик, и затем выберите MATLAB из панели Instances of selected object.

Системная память

Системная память является суммой доступной системной памяти на вашей компьютерной системе. Этот номер включает сумму доступной физической памяти и сумму доступного пробела файла подкачки на компьютере рабочий 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 путем обхода структур памяти процесса MATLAB и подведения итогов всех разделов, которым выделили физическое устройство хранения данных в памяти или в страничном файле на диске.

Используя Windows Task Manager, вы имеете для изображения MATLAB.exe:

Mem Usage < MemUsedMATLAB < Mem Usage + VM Size (in bytes)

где оба из следующего верны:

  • Mem Usage размер рабочего набора в килобайтах.

  • VM Size использование файла подкачки или частные байты, в килобайтах.

Размер рабочего набора является фрагментом виртуального адресного пространства MATLAB, которое является в настоящее время резидентским в RAM и может быть сослано без отказа страницы памяти. Использование файла подкачки дает фрагмент виртуального адресного пространства MATLAB, которое требует резервного копирования, которое уже не существует. Другим именем для использования файла подкачки является private bytes. Это включает все переменные MATLAB и рабочие области. Поскольку некоторые страницы в файле подкачки могут также быть частью рабочего набора, эта сумма является переоценкой MemUseMATLAB. Обратите внимание на то, что существуют виртуальные страницы на пробеле процесса MATLAB, которые уже имеют резервное копирование. Например, код, загруженный от EXEs и DLLs и файлов с отображенной памятью. Если какая-либо часть тех файлов будет в памяти, когда встроенная память будет названа, та память будет считаться как часть MemUsedMATLAB.

Зарезервированные адреса

Зарезервированные адреса являются адресами, откладывает в виртуальном адресном пространстве процесса для некоторого определенного будущего использования. Эти зарезервированные адреса уменьшают размер MemAvailableAllArrays и может уменьшать размер текущего или будущего значения MaxPossibleArrayBytes.

Пример 1 - виртуальная машина Java (JVM)

При запуске MATLAB часть виртуального адресного пространства MATLAB резервируется Виртуальной машиной Java® (JVM™) и не может использоваться в хранении массивов MATLAB.

Пример 2 - стандартный Windows Heap Manager

MATLAB, по умолчанию, использует стандартный диспетчер "кучи" Windows за исключением набора небольших предварительно выобранных размеров выделения. Одна характеристика этого диспетчера "кучи" - то, что его поведение зависит от того, меньше ли требуемое выделение или больше постоянного числа 524 280 байтов. Поскольку, пример, если вы создаете последовательность массивов MATLAB, каждый меньше чем 524 280 байтов, и затем очищаете их всех, MemUsedMATLAB значение до и после показов мало изменения и MemAvailableAllArrays значение теперь меньше общим выделенным местом.

Результат состоит в том, что, вместо того, чтобы глобально освободить дополнительную память, память становится зарезервированной. Это может только быть снова использовано для массивов меньше чем 524 280 байтов. Вы не можете исправить эту память для большего массива кроме путем перезапуска MATLAB.

Введенный в R2008a