主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

MATLAB Runtime Component Cache 和可部署存档嵌入

对于除 Java® 之外的所有部署目标,编译后的应用程序数据默认直接嵌入到可部署存档中,并在运行时提取到临时文件夹中。此临时文件夹称为 MATLAB® Runtime 组件缓存。当编译的应用程序运行时,可部署存档(CTF 文件)中的文件将被提取到 MATLAB Runtime 组件缓存中。有关使用 Java 包提取数据的详细信息,请参阅定义可部署 Java 存档的嵌入和提取选项

缓存大小和位置

在 R2024b 之前的版本中,默认最大缓存大小为 32 MB,从 R2024b 开始为 1024 MB。下表列出了默认的组件缓存位置。

平台R2024b 之前的版本R2024b 及更高版本
Windows®%LOCALAPPDATA%\Temp\%USERNAME%\mcrCache<version>%LOCALAPPDATA%\MathWorks\MatlabRuntimeCache\<release_version>
Linux®$HOME/.mcrCache<version>$HOME/.MathWorks/MatlabRuntimeCache/<release_version>
Mac

MATLAB R2020a 及更高版本中不使用缓存。App 捆绑包包含运行时所需的文件。

使用环境变量更改选项

使用环境变量,您可以为 MATLAB Runtime 组件缓存指定以下选项:

  • 定义您希望自动提取可部署存档的默认位置

  • 添加诊断错误打印选项,这些选项可在自动提取可部署存档时使用,以便进行故障排除

  • 出于性能原因调整 MATLAB Runtime 组件缓存大小

使用以下系统环境变量来更改这些设置。

环境变量目的注意
MCR_CACHE_ROOT当设置为您希望提取可部署存档的位置时,此变量会覆盖默认的每用户组件缓存位置。这仅适用于嵌入的 .ctf 文件。macOS 上,MATLAB R2020a 及更高版本中会忽略此变量。App 捆绑包包含运行时所需的文件。
MCR_CACHE_SIZE设置后,此变量会覆盖默认组件缓存大小。此变量的初始限制为 32M(兆字节),从 R2024b 开始为 1024M。不过,首次设置此变量后,可以更改此限制。请编辑文件 .max_size(该文件位于运行 mcrcachedir 命令指定的文件中),并使用所需的缓存大小限制。

覆盖默认行为

对于 Java 之外的目标,您可以使用 mcc -C 选项指示 mcc 不要将可部署存档嵌入到生成的二进制文件中。您可以使用此选项来解决可部署存档的问题,因为日志和诊断消息更加清晰。

您还可以通过在编译器 App 的设置部分添加 -c 标志实现此覆盖。

如果您正在使用 compiler.build 函数,请使用 EmbedArchive=false 选项。

注意

如果您运行 mcc 并指定冲突的包装器和目标类型,则存档将不会嵌入到生成的组件中,就像您为 mcc 指定了 -C 选项一样。例如:

mcc -W lib:myLib -T link:exe test.m test.c

另请参阅

主题