作者automaton ()
看板MATLAB
標題[討論] FOR 迴圈突然變超級慢??
時間Thu Aug 9 20:41:37 2018
各位學長/姊 好:
如下圖,為什麼我的for迴圈在116次以內都是0.6秒內完成,
但是一跨過116次後所消耗的時間就變超久,而且不成比例的耗時。
想請問各位學長姊,這是什麼問題? 我該如何改善呢? 謝謝喔!
以前相同的程式碼在64bit下執行,沒有這個問題。
今天因為要配合資料庫的需求改使用32bit版本,請問會是這個問題點嗎?
https://imgur.com/a/t2YihNy
https://imgur.com/a/Iy1Ro2S
https://imgur.com/a/5zGX9Ir
https://imgur.com/a/DmPA9on
https://imgur.com/a/4B9imAP
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.43.9
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MATLAB/M.1533818499.A.1FF.html
1F:推 profyang: jit compiler的關係? 08/09 22:25
請問profyang學長,jit 是什麼意思??
2F:推 diva: 試試把你的ansdata在for迴圈之前初始化(預設矩陣的大小) 08/10 04:22
回diva學長,我有利用cell來初始話ansdata這個矩陣,但是沒有改善耶
再麻煩學長指導
https://imgur.com/a/OUv5XVC
※ 編輯: automaton (140.112.43.9), 08/10/2018 12:25:19
3F:推 profyang: 就是Matlab會即時compile 印象中for迴圈不要太大的時候 08/10 13:03
4F:→ profyang: 現在的Matlab相對沒有jit的時候快很多 08/10 13:03
5F:→ profyang: 也就是你116以前的那麼快是jit的功勞 之後太慢就是jit不 08/10 13:04
6F:→ profyang: 夠強了 08/10 13:04
7F:→ profyang: 這只是我猜測而已 對這我也不是很懂 08/10 13:04
8F:→ profyang: 另外你ansdata裡面是數字的話用zeros可能比較好 08/10 13:06
9F:→ sppmg: 首先,請用貼code 網站好嗎!這樣很難看! 08/11 20:53
10F:→ sppmg: 用profile測一下,慢的不見得是ansdata。memory 檢查記憶體 08/11 21:00
11F:→ sppmg: 也可以ansdata 不存,看會不會慢 08/11 21:01
12F:→ name0625: 是不是記憶體不夠,吃到虛擬記憶體去了? 08/28 08:07