Main Content

memory

内存信息

说明

memory 在命令行窗口中显示关于计算机内存量和 MATLAB® 正在使用的内存量的信息。当 MATLAB 内存不足或由于内存使用量高而导致性能下降时,您可以使用 memory 来检查内存详细信息。

memory 函数仅适用于 Microsoft® Windows® 平台。

示例

[userview,systemview] = memoryuserview 中返回面向用户的内存信息,在 systemview 中返回面向系统的内存信息。

示例

示例

全部折叠

检索有关计算机内存的信息,并在命令行窗口中显示该信息。

memory
Maximum possible array:       60021 MB (6.294e+10 bytes) *
Memory available for all arrays:       60021 MB (6.294e+10 bytes) *
Memory used by MATLAB:        3337 MB (3.499e+09 bytes)
Physical Memory (RAM):       65189 MB (6.836e+10 bytes)

*  Limited by System Memory (physical + swap file) available.

在结构体 user 中返回面向用户的内存信息。使用该结构体显示为 MATLAB 进程保留的内存量。

user = memory;
disp(user.MemUsedMATLAB)
   3.4986e+09

同时返回面向用户和面向系统的内存信息。

[user,sys] = memory
user = struct with fields:
    MaxPossibleArrayBytes: 6.2927e+10
    MemAvailableAllArrays: 6.2927e+10
            MemUsedMATLAB: 3.4986e+09

sys = struct with fields:
    VirtualAddressSpace: [1×1 struct]
           SystemMemory: [1×1 struct]
         PhysicalMemory: [1×1 struct]

访问 PhysicalMemory 结构体的 Available 字段,以显示计算机上的可用物理内存量。

disp(sys.PhysicalMemory.Available)
   5.4366e+10

输出参量

全部折叠

面向用户的内存信息,以结构体形式返回。userview 有三个字段:

字段名称字段值
MaxPossibleArrayBytes

最大连续可用内存块的大小,这是此时 MATLAB 可以创建的最大数组大小的上限。

此字段的值是以下两个值中的较小者:

  • 在 MATLAB 虚拟地址空间中找到的最大连续内存块

  • 可用的系统内存总量

要查看此数目表示多少数组元素,请除以数组类中的字节数。例如,对于 double 数组,请除以 8。MATLAB 可以创建的实际元素数目始终小于此数目。

MemAvailableAllArrays

可用于保存数据的内存总量。可用的内存量保证至少与此值一样大。

此字段的值是以下两个值中的较小者:

  • 可用的 MATLAB 虚拟地址空间总量

  • 可用的系统内存总量

MemUsedMATLAB

为 MATLAB 进程保留的系统内存总量。

面向系统的内存信息,以结构体形式返回。systemview 有三个字段:

字段名称字段值
VirtualAddressSpace

包含两个字段 AvailableTotal 的标量结构体。

  • Available 字段的值是 MATLAB 进程的可用虚拟内存量。

  • Total 字段的值是 MATLAB 进程的虚拟内存总量。

SystemMemory

包含字段 Available 的标量结构体。Available 字段的值是可用的系统内存量,包括计算机上可用的物理内存量和可用的交换文件空间量。

PhysicalMemory

包含两个字段 AvailableTotal 的标量结构体。

  • Available 字段的值是计算机上可用的物理内存 (RAM) 量。您可以使用此值来测量在不需要使用磁盘上的分页文件的情况下可以访问多少数据。

  • Total 字段的值是计算机上的物理内存总量。

详细信息

全部折叠

显示的内存信息

memory 在命令行窗口中显示以下值。所有报告的值都属于 double 类型,并以字节表示。

  • Maximum possible array:最大连续可用内存块的大小

  • Memory available for all arrays:可用于保存数据的总内存

  • Memory used by MATLAB:为 MATLAB 进程保留的系统内存总量

  • Physical Memory (RAM):计算机上的物理内存 (RAM) 总量

除了这些值之外,MATLAB 还可能显示以下说明:

*  Limited by System Memory (physical + swap file) available.

  • 如果该说明适用于 Maximum possible array,则系统内存不足以允许映射 MATLAB 进程的最大可用块中的所有虚拟地址。

  • 如果该说明适用于 Memory available for all arrays,则系统内存不足以允许映射 MATLAB 进程中的所有可用虚拟地址。

MATLAB 使用的内存

MATLAB 通过以下方式来计算 Memory used by MATLAB 的大小:遍历 MATLAB 进程内存结构体,然后对在内存或磁盘上的分页文件中分配了物理存储的所有段求和。

影响结果的因素

实际内存信息可能与调用函数时捕获的信息不同。结果取决于您的计算机硬件和计算机上时刻变化的负载情况。

保留地址

保留地址是指在进程虚拟地址空间中留出的地址,供将来某些特定情况下使用。这些保留地址减小了 Memory available for all arrays 的大小,并可能减小 Maximum possible array 的当前值或以后的值的大小。

例如,在 MATLAB 启动时,部分 MATLAB 虚拟地址空间将被 Java® 虚拟机 (JVM®) 保留,不能用于存储 MATLAB 数组。

扩展功能

版本历史记录

在 R2008a 中推出