主要内容

巩固工作区内存

语法


包文件名
包(文件名)

描述

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

谨慎

函数无法保留大于2GB的变量。它会把它们从你的工作空间中清除。

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

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

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

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

例子

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

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

提示

你只能奔跑从MATLAB命令行。

如果指定文件名参数,该文件必须驻留在您具有写权限的文件夹中。

函数不影响分配给MATLAB进程的内存量。你必须退出MATLAB来释放这个内存。

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

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

功能释放空间通过

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

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

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

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

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

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

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

另请参阅

|

R2006a之前介绍过