作者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