MATLAB编译器中编译文件的性能优化

2020年12月7日21:21:40MATLAB编译器中编译文件的性能优化已关闭评论

MATLAB编译器中编译文件的性能优化

优化编译性能主要借助于选项标志-O实现。假设待编译文件为Myfile.m,mcc的调用格式如下。

·mcc -o all Myfile:激活所有优化功能。

·mcc -o none Myfile:关闭所有优化功能。

·mcc -o <optimization option>:[on/off] Myfile:激活或关闭某个特定的优化功能。其中optimization option可以取fold_mxarrays 、fold_non_scalar等。

例22.6 优化标量。假设有以下文件,要求对其编译,比较得到MEX的性能。

[shili.m]

function y = foo(x)

y = 3*pi*x;

分别运行以下编译指令:

mcc -O none -x shili

tic;shili(1:10);toc

elapsed_time =

0.5500

mcc -O none -O fold_scalar_mxarrays:on -x shili

tic;shil(1:10);toc

elapsed_time =

0.1100

例22.7 激活选项optimize_integer_for_loops,可简化循环。当循环变量的初值和步长均为整数时,编译器将采用C/C++的整型变量,而非MATLAB的数组变量。(建议在调试程序时,不要激活该优化选项。)

[liti.m]

function y=liti(x)

for i = 1:length(x)-1

x(i)= x(i)+ x(i+1);

end

y=x;

分别运行以下指令,对比各自编译得到的MEX文件的性能:

mcc -O none -x liti

tic;liti(1:100);toc

elapsed_time =

0.4400

mcc -O none -O fold_non_scalar_mxarrays:on -x liti

tic;liti(1:100);toc

elapsed_time =

0

  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。