对于长执行代码,Matlab独立会比UI更快吗?

时间:2013-06-10 09:27:46

标签: matlab matlab-compiler

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

提前致谢

1 个答案:

答案 0 :(得分:4)

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

MATLAB编译器不会像C编译器为C语言那样将MATLAB代码转换为机器代码。它的作用是归档和加密MATLAB代码(注意,它正确地加密它,而不仅仅是{{1它就像评论建议的那样),创建一个瘦的可执行包装器并将它们打包在一起,可能还有MATLAB Compiler Runtime(MCR)。 MCR与MATLAB本身非常相似,没有图形用户界面,可以自由重新编程。

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

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

您可以采取一些小的措施来提高性能:例如,在pcode中,您可以指定应用程序使用的工具箱。 deploytool使用依赖检查器来打包它认为您的代码可能依赖的所有MATLAB功能,但它并不能总是准确地说明,因为您的代码所需的功能可能会在运行时更改。因此,它在谨慎方面是错误的,包括的不仅仅是必要的。通过仅指定您认为必要的工具箱,您可以加快速度(它还可以加快构建过程)。