TC官方合作论坛
标题:
关于脚本让内存暴涨问题
[打印本页]
作者:
aa254495615
时间:
2012-3-12 14:37
标题:
关于脚本让内存暴涨问题
我写的脚本是进行640*480个像素点对比颜色,用Y外循环+X内循环,把大漠颜色对比用在X循环内。运行脚本后,脚本的内存使用量不断暴涨,直到所有内存使用完然后弹出内存出错。
之前用按键精灵也是这样的编程思路,运行后反而没有暴涨,保持在10M左右内存使用量,就是花了三分多时间,太久,想试一试用TC写的是否会少一点,谁知内存暴涨~
是啥出了问题?求大神指点~
作者:
cgg521
时间:
2012-3-12 14:47
应该可能或许是线程运用的不合理吧~~只是猜测...要说明的一点是,程序单线程控制循环找色找图是很流畅的,哪怕是2000*2000,线程运用的合理,多线程也不会造成电脑卡
作者:
aa254495615
时间:
2012-3-12 14:50
回复
2楼
cgg521
的帖子
我还没到多线程处理,都是单线程过来的~
作者:
cgg521
时间:
2012-3-12 14:58
回复
3楼
aa254495615
的帖子
Y外循环+X内循环这段代码只用了一个线程吗?意思是说,X内循环和Y外循环当前只有一个在循环吗?如果不是,那可能就是这个问题导致的内存暴涨..如果是,那我也考虑不出具体问题出在哪...但有一点可以肯定,是代码的问题
作者:
aa254495615
时间:
2012-3-12 15:14
回复
4楼
cgg521
的帖子
循环 (xiaogeY<=480 ) //地图最大Y
xiaogeX = xiaogeXchushi
循环 (xiaogeX<= 640) //地图最大X
像素=dmcj.GetColor(xiaogeX,xiaogeY)
如果 ( 像素=="000000" )
map="1"
否则
如果 ( 像素=="FFFFFF" )
map="0"
否则
如果 ( 像素=="00FF00")
map="2"
否则
如果 (像素=="00FFFF" )
map="3"
否则
map="0"
如果结束
如果结束
如果结束
如果结束
xiaogeX = xiaogeX + 1
maptxt=maptxt + map
循环结束
xiaogeY = xiaogeY + 1
循环结束
复制代码
循环部分是这样写的,没问题的呀~
题外话:为什么不支持SELECT语句呢,就不需要那么多if、if、if了
作者:
aa254495615
时间:
2012-3-12 15:24
找到原因了,问题在于第27行代码,我把他注释掉就不暴涨了。但我如何把得到的map数值按顺序写进maptxt呢
作者:
cgg521
时间:
2012-3-12 22:30
回复
6楼
aa254495615
的帖子
我没找到简单的方法..我是按照笨的方法...可能我是菜鸟,写茫茫的类似你这样的代码....做个单开收货的茫茫2W多行代码..生成12M大..我也求解.
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1