2

我已经构建了一个独立的 Matlab 应用程序。我期望它比从 Matlab 环境中运行应用程序更快,但它确实有点慢(每次迭代 1.3 seg 与每次迭代 1.5 seg)我没有计算 MCR 所需的初始化时间,而是我的代码的执行。这是预期的性能还是我应该获得性能改进?我没有在部署工具上找到任何有助于减少执行时间的设置。

提前致谢

4

1 回答 1

4

使用 MATLAB Compiler 构建的应用程序的执行速度应该与在 MATLAB 中几乎完全相同。

MATLAB 编译器不会将您的 MATLAB 代码转换为机器代码,就像 C 编译器为 C 所做的那样。它的作用是存档和加密您的 MATLAB 代码(注意,它会正确加密它,而不仅仅是pcode评论建议的),创建一个精简的可执行包装器并将它们打包在一起,可能还使用 MATLAB Compiler Runtime (MCR)。MCR 与 MATLAB 本身非常相似,没有图形用户界面,并且可以自由再分发。

当您运行可执行文件时,它会解压缩和解密您的 MATLAB 代码并针对 MCR 运行它。在结果和速度方面,它应该运行完全相同。

非常旧版本的 MATLAB Compiler(4.0 之前的版本)以不同的方式工作,将 MATLAB 语言的子集转换为 C 代码,并对其进行编译。这提供了潜在的显着加速,但只支持语言的一个子集,除非您小心,否则结果有时可能会有所不同。类似的功能现在可在单独的 MATLAB Coder 产品中使用。

您可以做一些小事来提高性能:例如,deploytool您可以在其中指定您的应用程序使用哪些工具箱。deploytool使用依赖检查器来打包它认为您的代码可能依赖的所有 MATLAB 功能,但它不能总是准确地告诉您,因为您的代码需要的函数可能会在运行时发生变化。因此,它在谨慎方面犯了错误,并且包括了不必要的内容。通过仅指定您知道必要的工具箱,您可以加快速度(它也大大加快了构建过程)。

于 2013-06-10T11:24:59.663 回答