作者micklin (離鄉背井的米克)
看板CSSE
標題Re: [疑惑]雙核心程式執行一天以後越跑越慢..
時間Mon Dec 21 23:47:30 2009
※ 引述《Geigemachen ()》之銘言:
: ※ 引述《micklin (離鄉背井的米克)》之銘言:
: : 所以你的程式是本來就會越跑越慢?
: 是的,
: : 如果你的程式跑到一定的步驟後就會變慢,
: : 那你加速後, 本來3-4天會變慢的, 1天以後就變慢, 聽起來很合理....
: 感覺不合理的是,重開機,或是關機又開機以後還是慢,快不起來。
: 不知道是不是有對系統檔案做了什麼永久性的改變(我的程式碼原來沒有這麼做)?
: 單核心程式
: 用速度慢的電腦來連續執行多次3-4天就變慢,速度快的電腦連續執行多次是8-10天。
: 雙核心程式
: 用速度快的電腦1天就慢得不會動,後來看我自己程式顯示,
: 雙核心程式變慢後執行程式完畢時間是4天,
: 單核心程式沒變慢執行程式完畢時間是4小時。
: : 作業系統是?
: Windows XP, sp3
不知道你的程式做了什麼處理, 有沒有可能是讀檔寫檔, 結果檔案越來越大,
然後讀檔的時候就越來越久?
要不要檢查一下行程的IO?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.237.96
1F:推 Geigemachen:我用process explorer查查;程式大半只寫不讀,輸出20MB 12/21 23:51
2F:→ Geigemachen:多謝您熱心指點,感激! 12/21 23:52
3F:推 leicheong:做點不負責任(!!)的推測... 你應該是在procedure 12/21 23:58
4F:→ leicheong:local declare一大片variable吧... 試一試用global 12/21 23:59
5F:→ leicheong:variable代替然後在procedure中完全禁止declare新的 12/22 00:00
6F:→ leicheong:variable... 如果有改善的話, 可能你的程式出現 12/22 00:01
7F:→ leicheong:memory fragmentation了... :P 12/22 00:01
8F:→ leicheong:對了, array的malloc()那類工作也要在一開始做哦. 12/22 00:04
9F:推 Geigemachen:我的程式寫檔是用global,陣列尺寸固定在迴圈前宣告 12/22 00:09
10F:→ Geigemachen:我該補一些執行細節敘述,免得熱心的板友費心猜,多謝你 12/22 00:09