ループ処理における,​1ループごとの計算時​間について

조회 수: 12 (최근 30일)
yuuki harada
yuuki harada 2020년 7월 30일
댓글: michio 2020년 7월 30일
forループを用いた計算に置ける計算時間について,たとえばループ回数を倍にした時,計算時間も2倍になると考えたのですが,計算時間は2倍以下になりました.
1ループごとの計算時間を見ると,多少のばらつきはありますが,ループの後半に行くほど計算時間が短くなっていました.
計算内容は明らかには出来ませんが,ループ回数に依存し,計算時間が短くなるような因子はありません.
MATLABでのforループでは裏で計算時間が短くなるような処理がなされているのでしょうか?
また,内部でどのような計算がなされているか確認するする術はありますでしょうか?

답변 (1개)

michio
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
yuuki harada
yuuki harada 2020년 7월 30일
ご回答ありがとうございます。
わたしの環境では,簡単な計算(逆行列を求め,その値を返す)でも同様の減少が見られたため,michio様の環境でそのような結果が得られなかったということは,MATLAB以外の要因があるかもしれませんね……
もう少し調査してみたいと思います.ありがとうございました.
michio
michio 2020년 7월 30일
コメントありがとうございます。
もし再現性があれば開発チームにも確認することもできますので、何かありましたらご連絡ください。

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

제품


릴리스

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!