文档

巩固工作空间内存

语法


包文件名
包(文件名)

描述

通过重新组织信息来释放所需的空间,使其只使用所需的最小内存。所有来自基本工作区和全局工作区的小于2GB的变量都将被保留。此时定义的任何持久化变量都被设置为它们的默认值(空矩阵,[]).

谨慎

函数无法保存大于2GB的变量。它将它们从您的工作空间中清除。

请勿使用函数使用定义事件和侦听器的对象。的函数导致为工作空间中的对象定义的任何侦听器的析构函数。有关保存对象时恢复侦听器的信息,请参见恢复的听众

MATLAB®软件临时将工作区数据存储在一个名为tp # # # # # # .mat(# # # # # #是数值),该文件位于临时文件夹中。(您可以使用该命令dir (tempdir)查看此文件夹中的文件)。

包文件名释放内存中的空间,临时将工作区数据存储在指定的文件中文件名.此文件驻留在当前工作文件夹中,除非另有指定,否则具有.mat文件扩展名。

包(文件名)的函数形式是

例子

将当前文件夹更改为可写文件夹,运行,并返回到上一个文件夹。

CWD = pwd;cd (tempdir);包cd(鹿)

提示

你只能跑从MATLAB命令行。

如果您指定文件名参数,则该文件必须位于您具有写权限的文件夹中。

函数不会影响分配给MATLAB进程的内存量。必须退出MATLAB才能释放此内存。

由于MATLAB使用内存管理的堆方法,因此扩展的MATLAB会话可能会导致内存碎片化。当内存碎片化时,可能有足够的空闲空间,但没有足够的连续内存来存储一个新的大变量。

如果你得到内存不足消息,从MATLAB,函数可以为您找到一些空闲内存,而不必强迫您删除变量。

函数释放空间

  • 将基本工作区和全局工作区中的所有变量保存到临时文件中。

  • 清除内存中的所有变量和函数。

  • 从临时文件中重新加载基本和全局工作区变量,然后删除该文件。

如果你使用并且仍然没有足够的空闲内存来继续,您必须清除一些变量。如果您经常耗尽内存,您可以在MATLAB会话早期分配更大的矩阵,并使用这些特定于系统的技巧。

  • 在Open Group UNIX上运行MATLAB时®平台,请系统管理员增加交换空间。

  • 在微软®窗户®平台,增加虚拟内存使用Windows控制面板。

若要在运行pack时维护持久变量,请使用mlock在函数中。

另请参阅

|

R2006a之前介绍