调用函数——慢

17日视图(30天)
亚历桑德罗·D
亚历桑德罗·D 2018年9月18日
回答: Sambit Senapati 2018年9月21日
亲爱的用户,我在优化的代码后,我的一个项目,我建议的做法打破我的代码用单独的函数在小部件。然而当我做这些事情的时候,我得到一个重要的执行速度。请考虑下面的两个例子:
一)
函数y = fun1 (params)
%参数是结构与几个变量
b = * 2;
y = b + 1;
结束% fun1结束
相比
B)
函数y = fun1 (params)
%参数是结构与几个变量
b = fun2 (params);
y = b + 1;
结束% fun1结束
函数b = fun2 (params)
b = * 2;
结束% fun2结束
(B)为我的应用程序更容易维护,但20/30%慢。(当然上面的示例是一个玩具的例子)。其中一个原因可能是,我必须通过fun2“参数”,这是一个很大的结构。但使用全局变量将是更糟糕的是,还有其他(快速)方式?谢谢!
3评论
亚历桑德罗·D
亚历桑德罗·D 2018年9月18日
亲爱的,谢谢你的回答。这些都是一些细节。在fun2我需要解压结构参数。但参数本身不是修改
函数y = fun1 (params)
%参数是结构与几个变量
b = fun2 (params);
y = b + 1;
结束% fun1结束
函数b = fun2 (params)
的方式= params.agrid;
zgrid = params.zgrid;
na = params.na;
新西兰= params.nz;
佛罗里达大学= params.uf;
tranZ = params.tranZ;
阿明= min(的方式);amax = max(的方式);
%做一些操作方式,zgrid等等。
b = * 2 +方式。^ 2;
结束% fun2结束

登录置评。

接受的答案

Sambit Senapati
Sambit Senapati 2018年9月21日
请通过这个 链接 大概描述了不同类型的函数调用的性能。这可以帮助你找出原因代码是缓慢的。

更多的答案(0)

类别

找到更多的在变量帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!