Отобразите информацию о памяти
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. Это - сумма физической памяти и потенциального использования файла подкачки.
При вводе 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 |
Доступная физическая память совпадает с 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 и подведения итогов всех разделов, которым выделили физическое устройство хранения данных в памяти или в страничном файле на диске.
Используя 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
.
При запуске MATLAB часть виртуального адресного пространства MATLAB резервируется Виртуальной машиной Java® (JVM™) и не может использоваться в хранении массивов MATLAB.
MATLAB, по умолчанию, использует стандартный диспетчер "кучи" Windows за исключением набора небольших предварительно выобранных размеров выделения. Одна характеристика этого диспетчера "кучи" - то, что его поведение зависит от того, меньше ли требуемое выделение или больше постоянного числа 524 280 байтов. Поскольку, пример, если вы создаете последовательность массивов MATLAB, каждый меньше чем 524 280 байтов, и затем очищаете их всех, MemUsedMATLAB
значение до и после показов мало изменения и MemAvailableAllArrays
значение теперь меньше общим выделенным местом.
Результат состоит в том, что, вместо того, чтобы глобально освободить дополнительную память, память становится зарезервированной. Это может только быть снова использовано для массивов меньше чем 524 280 байтов. Вы не можете исправить эту память для большего массива кроме путем перезапуска MATLAB.