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 | %LOCALAPPDATA%\MathWorks\MatlabRuntimeCache\ |
| Linux® | $HOME/.mcrCache | $HOME/.MathWorks/MatlabRuntimeCache/ |
| 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