Byłem zaskoczony, aby znaleźć następujące koszty różnicy między systemem MATLAB dla pętli:Najlepsze praktyki dla MATLAB dla indeksu pętli
ksize = 100;
klist = 1:ksize;
tic
for m = 1:100000
for k = 1:ksize
end
end
toc
tic
for m = 1:100000
for k = klist
end
end
toc
Jedyną różnicą jest sposób lista indeks jest tworzony. Podejrzewałbym, że druga wersja będzie szybsza, ale lo!
Elapsed time is 0.055400 seconds.
Elapsed time is 1.695904 seconds.
Moje pytanie jest dwojaki: czym jest odpowiedzialny za rezultat powyżej, a gdzie indziej jest to niuans (lub podobnej nich) występują w programowaniu MATLAB? Mam nadzieję, że będę w stanie lepiej wykryć te nieefektywności w przyszłości. Dziękuje wszystkim.
Jest to prawdopodobnie spowodowane akceleracją JIT, ponieważ jeśli wyłączysz ją za pomocą funkcji "accel off", otrzymasz podobne wyniki dla obu serii. –