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的帖子
  1. 循环  (xiaogeY<=480 ) //地图最大Y
  2.     xiaogeX = xiaogeXchushi
  3.    
  4.          循环  (xiaogeX<= 640)  //地图最大X
  5.                         
  6.                   像素=dmcj.GetColor(xiaogeX,xiaogeY)

  7.                如果 (  像素=="000000" )  
  8.                    map="1"           
  9.                否则
  10.                      如果 ( 像素=="FFFFFF" )
  11.                         map="0"        
  12.                     否则
  13.                          如果  ( 像素=="00FF00")
  14.                              map="2"
  15.                          否则
  16.                                如果  (像素=="00FFFF" )
  17.                                     map="3"               
  18.                                否则
  19.                                     map="0"                    
  20.                                如果结束  
  21.                          如果结束
  22.                      如果结束
  23.                如果结束

  24.             xiaogeX = xiaogeX + 1
  25.             maptxt=maptxt + map
  26.             
  27.          循环结束
  28.          
  29.        xiaogeY = xiaogeY + 1
  30.       
  31.     循环结束
复制代码


循环部分是这样写的,没问题的呀~
题外话:为什么不支持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