|
很多新人可能在处理一些文本之类的数据时会遇到这样一种情况:
小明最近在写一个数据处理软件,他有一个文本数据要处理,大概要使用计次循环 处理10W次左右吧
刚开始循环的时候速度非常快,大概每秒处理好 n万次吧,可是他发现,慢慢的速度越来越慢了,从一秒一万的速度,到1秒1千,到最后一秒几百的速度
越到后面,速度越慢,简直惨不忍睹啊,怎么会这样?
他的代码是这样的:
变量名 | 类 型 | 静态 | 数组 | 备 注 | n | 整数型 | | | 缓存数据 | 文本型 | | | 启动时间 | 整数型 | | |
启动时间 = 取启动时间 ()计次循环首 (900000, n )处理事件 ()缓存数据 = 缓存数据 + “12345678@qq.com----123456789”标题 = 到文本 (n )计次循环尾 ()缓存数据 = “”启动时间 = 取启动时间 () - 启动时间 信息框 (到文本 (启动时间 ÷ 1000 ), 0, , )
执行效果:(开始1秒约1-2W,渐渐的就只有几百了)
于是小明在百度搜索 “易语言计次循环 越来越慢 ” 的问题,试过各种循环处理,效果依旧啊,都有一个共同点,开始速度开飞机,后面就变拖拉机了
那么,问题到底出在哪里呢?为何循环到后面速度会越来越慢呢?
明明没有什么特殊的地方,都是变量赋值啊!按道理来说不应该啊!
那么为何速度越到后面越来越慢,到底是人性的扭曲,还是道德的沦丧呢?
各位易友有好的写法帮助小明解决这个问题么?
下面我们来看看小小明写的代码,那速度真是跟坐飞机似的,一泻千里啊!!!
效果图:(从头到尾速度一直保持在高速状态)
那么小小明这个到底是怎么实现的呢?为何它的循环速度不受人性和道德的限制呢?
我们来来看看小小明写的代码:
变量名 | 类 型 | 静态 | 数组 | 备 注 | n | 整数型 | | | 缓存数据 | 文本型 | | | 启动时间 | 整数型 | | | 计次 | 整数型 | | |
启动时间 = 取启动时间 ()计次循环首 (900000, n )处理事件 ()计次 = 计次 + 1 缓存数据 = 缓存数据 + “12345678@qq.com----123456789”如果真 (计次 = 100 )计次 = 0 缓存数据 = “”标题 = 到文本 (n)计次循环尾 ()缓存数据 = “”启动时间 = 取启动时间 () - 启动时间 信息框 (到文本 (启动时间 ÷ 1000 ), 0, , )
从小小明的代码中,我们看到了他在循环中做了这样的处理:
每循环100次,就将缓存数据保存起来(假设加上这句代码),然后将缓存数据给清空
为什么要这么写呢?我们一起来分析下原因:
首先,每循环一次,代码中就将 缓存数据 = 缓存数据 + “12345678@qq.com----123456789”
缓存数据 进行赋值了,开始的时候缓存数据 的内容 是“” 空的,所以赋值效率非常快,当缓存数据被赋值越来越多数据的时候,这个过程就会越来越慢
所以他在赋值的时候做了个计次 统计,每 “计次” 到100次的时候,就将数据保存一下,然后将缓存数据清空,使得每次这个“缓存数据变量” 体积达到
一定程度的时候进行了及时的处理释放,所以他的循环速度 不受限制,可以一直高速的处理下去。
不知各位易友们是否明白了 “计次循环” 命令,循环到后面越来越慢的原因了呢?
如果觉得我的心得对你有帮助,请在帖子下方进行“评分”和“打赏”,作为对分享心得的我的奖励支持,鼓励更多的朋友分享自己的小心得,让广大易友更上一层楼
高效计次循环 例子.e
(3.61 KB, 下载次数: 143)
|
评分
-
参与人数 4 | 好评 +3 |
精币 +11 |
收起
理由
|
叶斯
| + 1 |
+ 2 |
YYDS~! |
陽陽陽
| |
+ 1 |
超列越来越多的表项也会造成卡顿 |
知情人士
| + 1 |
|
感谢分享,很给力!~ |
单身汪
| + 1 |
+ 8 |
感谢分享,很给力!~ |
查看全部评分
|