TC官方合作论坛

 找回密码
 立即注册
查看: 1747|回复: 6

[问题] 关于脚本让内存暴涨问题

[复制链接]
发表于 2012-3-12 14:37:09 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我写的脚本是进行640*480个像素点对比颜色,用Y外循环+X内循环,把大漠颜色对比用在X循环内。运行脚本后,脚本的内存使用量不断暴涨,直到所有内存使用完然后弹出内存出错。

之前用按键精灵也是这样的编程思路,运行后反而没有暴涨,保持在10M左右内存使用量,就是花了三分多时间,太久,想试一试用TC写的是否会少一点,谁知内存暴涨~

是啥出了问题?求大神指点~
回复

使用道具 举报

发表于 2012-3-12 14:47:46 | 显示全部楼层
应该可能或许是线程运用的不合理吧~~只是猜测...要说明的一点是,程序单线程控制循环找色找图是很流畅的,哪怕是2000*2000,线程运用的合理,多线程也不会造成电脑卡
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-12 14:50:59 | 显示全部楼层
回复 2楼cgg521的帖子

我还没到多线程处理,都是单线程过来的~
回复 支持 反对

使用道具 举报

发表于 2012-3-12 14:58:36 | 显示全部楼层
回复 3楼aa254495615的帖子

Y外循环+X内循环这段代码只用了一个线程吗?意思是说,X内循环和Y外循环当前只有一个在循环吗?如果不是,那可能就是这个问题导致的内存暴涨..如果是,那我也考虑不出具体问题出在哪...但有一点可以肯定,是代码的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-12 15:14:13 | 显示全部楼层
回复 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了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-12 15:24:55 | 显示全部楼层
找到原因了,问题在于第27行代码,我把他注释掉就不暴涨了。但我如何把得到的map数值按顺序写进maptxt呢
回复 支持 反对

使用道具 举报

发表于 2012-3-12 22:30:52 | 显示全部楼层
回复 6楼aa254495615的帖子

我没找到简单的方法..我是按照笨的方法...可能我是菜鸟,写茫茫的类似你这样的代码....做个单开收货的茫茫2W多行代码..生成12M大..我也求解.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-9-29 07:55 , Processed in 0.042425 second(s), 24 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表