极限测试之Matlab与Forcal普通函数调用效率
数值计算,例如微积分、微分方程求解等存在大量的函数调用,故高效的函数调用对数值计算软件来讲是至关重要的。============
Matlab 2009a的测试代码:f=@(x,y,z,t)x+y+z;
tic;
s=0;
for x=0:1000
for y=0:100
for z=0:100
s=s+f(x,y,z);
end
end
end
s
toc
s =
6.126720600000000e+009
Elapsed time is 9.546717 seconds.发现将函数写成m文件后效率会提高,如下例:
m函数:%file xyz.m
function c=xyz(x,y,z)
c=x+y+z;
end测试代码:tic;
s=0;
for x=0:1000
for y=0:100
for z=0:100
s=s+xyz(x,y,z);
end
end
end
s
toc
s =
6.126720600000000e+009
Elapsed time is 4.724592 seconds.==========
Forcal 9(OpenFC演示)代码:f(x,y,z)=x+y+z;
mvar:
t=sys::clock(),
s=0,
x=0, while{x<=1000,
y=0, while{y<=100,
z=0, while{z<=100,
s=s+f(x,y,z),
z++
},
y++
},
x++
},
s;
/1000;结果:
6126720600.
1.109 秒
二者效率有几倍的差距。 嗯,不错,支持一下.
http://www.treesea.com/admin/xianweijing/pic/201561215384318.jpg
http://www.treesea.com/admin/editor/UploadFile/201561215400198.jpg
http://www.treesea.com/admin/editor/UploadFile/2015612153824295.jpg
http://www.treesea.com/admin/editor/UploadFile/2015612153834123.jpg
http://www.treesea.com/admin/editor/UploadFile/2015612153856764.jpg
http://www.treesea.com/admin/editor/UploadFile/201561215398442.jpg
http://www.treesea.com/admin/editor/UploadFile/2015612153920343.jpg
http://www.treesea.com/admin/editor/UploadFile/2015612153932923.jpg
http://www.treesea.com/admin/editor/UploadFile/2015612153944479.jpg
页:
[1]