Re: [疑惑]雙核心程式執行一天以後越跑越慢..

看板CSSE (電腦科學及軟體工程)作者 (離鄉背井的米克)時間15年前 (2009/12/21 23:47), 編輯推噓3(307)
留言10則, 2人參與, 最新討論串4/4 (看更多)
※ 引述《Geigemachen ()》之銘言: : ※ 引述《micklin (離鄉背井的米克)》之銘言: : : 所以你的程式是本來就會越跑越慢? : 是的, : : 如果你的程式跑到一定的步驟後就會變慢, : : 那你加速後, 本來3-4天會變慢的, 1天以後就變慢, 聽起來很合理.... : 感覺不合理的是,重開機,或是關機又開機以後還是慢,快不起來。 : 不知道是不是有對系統檔案做了什麼永久性的改變(我的程式碼原來沒有這麼做)? : 單核心程式 :  用速度慢的電腦來連續執行多次3-4天就變慢,速度快的電腦連續執行多次是8-10天。 : 雙核心程式 :  用速度快的電腦1天就慢得不會動,後來看我自己程式顯示, :  雙核心程式變慢後執行程式完畢時間是4天, :  單核心程式沒變慢執行程式完畢時間是4小時。 : : 作業系統是? : Windows XP, sp3 不知道你的程式做了什麼處理, 有沒有可能是讀檔寫檔, 結果檔案越來越大, 然後讀檔的時候就越來越久? 要不要檢查一下行程的IO? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.237.96

12/21 23:51, , 1F
我用process explorer查查;程式大半只寫不讀,輸出20MB
12/21 23:51, 1F

12/21 23:52, , 2F
多謝您熱心指點,感激!
12/21 23:52, 2F

12/21 23:58, , 3F
做點不負責任(!!)的推測... 你應該是在procedure
12/21 23:58, 3F

12/21 23:59, , 4F
local declare一大片variable吧... 試一試用global
12/21 23:59, 4F

12/22 00:00, , 5F
variable代替然後在procedure中完全禁止declare新的
12/22 00:00, 5F

12/22 00:01, , 6F
variable... 如果有改善的話, 可能你的程式出現
12/22 00:01, 6F

12/22 00:01, , 7F
memory fragmentation了... :P
12/22 00:01, 7F

12/22 00:04, , 8F
對了, array的malloc()那類工作也要在一開始做哦.
12/22 00:04, 8F

12/22 00:09, , 9F
我的程式寫檔是用global,陣列尺寸固定在迴圈前宣告
12/22 00:09, 9F

12/22 00:09, , 10F
我該補一些執行細節敘述,免得熱心的板友費心猜,多謝你
12/22 00:09, 10F
文章代碼(AID): #1BBvYLFk (CSSE)
文章代碼(AID): #1BBvYLFk (CSSE)