匿名函数和普通函数之间的性能会有差异吗?

Tim*_*Tim 5 matlab anonymous-function

匿名函数和普通函数之间的性能会有差异吗?例如,函数调用的开销是否有任何变化?

感谢致敬!

小智 9

不幸的是,我找不到任何关于这个问题的具体内容.但是,与普通函数相比,匿名函数应该有额外的开销.

你可以亲自尝试一下.首先创建文件nonanon.m

function x=nonanon(y)
  x=y^2;
end
Run Code Online (Sandbox Code Playgroud)

然后创建一个单元格文件:

%% non anon
tic
for i=1:1000000
    z=nonanon(i);
end
toc

%% anon
f=@(x) x^2;
tic
for i=1:1000000
    z=f(i);
end
toc
Run Code Online (Sandbox Code Playgroud)

享受,输出:

经过时间为0.513759秒.

经过的时间是14.434895秒.

结论是匿名函数更慢.