ループ処理における,1ループごとの計算時間について
12 次查看(过去 30 天)
显示 更早的评论
forループを用いた計算に置ける計算時間について,たとえばループ回数を倍にした時,計算時間も2倍になると考えたのですが,計算時間は2倍以下になりました.
1ループごとの計算時間を見ると,多少のばらつきはありますが,ループの後半に行くほど計算時間が短くなっていました.
計算内容は明らかには出来ませんが,ループ回数に依存し,計算時間が短くなるような因子はありません.
MATLABでのforループでは裏で計算時間が短くなるような処理がなされているのでしょうか?
また,内部でどのような計算がなされているか確認するする術はありますでしょうか?
0 个评论
回答(1 个)
michio
2020-7-30
興味深い現象です。
試しに簡単な計算で確かめてみましたが、特にループ回数と計算時間に相関は見られませんでした。
当時に動かしている他のアプリなどの影響が大きい気がします。
N = 10000;
t = zeros(N,1);
sumsin = zeros(N,1);
x = linspace(0,2*pi,1000);
for ii=1:N
tic
sumsin(ii) = sum(sin(ii*x));
t(ii) = toc;
end
plot(log10(t))
MATLAB コード実行時に Just-in-Time (JIT) コンパイルが使用されていますが、その内部でどのように処理されているかを知ることはできません。
2 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!