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

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

Respuestas (1)

michio
michio el 30 de Jul. de 2020
興味深い現象です。
試しに簡単な計算で確かめてみましたが、特にループ回数と計算時間に相関は見られませんでした。
当時に動かしている他のアプリなどの影響が大きい気がします。
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 comentarios
yuuki harada
yuuki harada el 30 de Jul. de 2020
ご回答ありがとうございます。
わたしの環境では,簡単な計算(逆行列を求め,その値を返す)でも同様の減少が見られたため,michio様の環境でそのような結果が得られなかったということは,MATLAB以外の要因があるかもしれませんね……
もう少し調査してみたいと思います.ありがとうございました.
michio
michio el 30 de Jul. de 2020
コメントありがとうございます。
もし再現性があれば開発チームにも確認することもできますので、何かありましたらご連絡ください。

Iniciar sesión para comentar.

Categorías

Más información sobre 環境と設定 en Help Center y File Exchange.

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!