开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 5891|回复: 11
收起左侧

[已回应] 精易模块【文本_去重复文本】优化建议

[复制链接]
发表于 2020-12-29 16:36:43 | 显示全部楼层 |阅读模式   山东省滨州市
本帖最后由 禁回忆 于 2020-12-29 16:46 编辑

先说结论,今天我现写的这个文本去重,效率大约是现有的开源免费的最新版本的精易模块中【文本_去重复文本】的三倍左右。
在测试中,万字的速度提升尤为明显,稍微不到精易模块的四倍,十万字稍不到三倍,百万字三倍速度。
当然,这是随机字符的测试结果,再极特殊的情况下,现写的这个子程序理论上耗时也会比精易模块的【文本_去重复文本】少40%左右,具体是多少我这懒得算了。
这个优化主要优化在检测文本是否存在和分割文本上。类比冒泡排序和冒泡排序的优化版。
精易模块对分割后的文本与其他文本段都进行了对比,而已知当前文本段是重复的文本时是不需要再去对比的。

就现在来看,效率还能进一步提升。

优化后的代码先贴出来,具体测试结果请往后看
测试源代码:
使用模块【精易模块】
文本重复测试.e (870.07 KB, 下载次数: 24)

评分

参与人数 1精币 +1 收起 理由
项目部004 + 1 没有必要的情况下不考虑用汇编!感谢支持!

查看全部评分

发表于 2021-2-4 16:16:07 | 显示全部楼层   上海市上海市
我看的一脸懵
回复 支持 反对

使用道具 举报

签到天数: 4 天

 楼主| 发表于 2020-12-30 12:08:16 | 显示全部楼层   山东省滨州市
禁回忆 发表于 2020-12-30 12:07
那就请先修改分割后的文本数组的遍历方式,模块中所用的【内部_数组成员是否存在_文本】子程序每次遍历都全 ...

@项目部004
回复 支持 反对

使用道具 举报

签到天数: 4 天

 楼主| 发表于 2020-12-30 12:07:01 | 显示全部楼层   山东省滨州市
那就请先修改分割后的文本数组的遍历方式,模块中所用的【内部_数组成员是否存在_文本】子程序每次遍历都全部遍历一遍,时间复杂度位O(n²)@项目部004
回复 支持 反对

使用道具 举报

结帖率:30% (6/20)

签到天数: 9 天

发表于 2020-12-29 18:44:46 | 显示全部楼层   江西省九江市
汇编的东西不能用太多 不然什么BUG 都照不出来

评分

参与人数 1精币 +1 收起 理由
项目部004 + 1 很赞同,谢谢!

查看全部评分

回复 支持 反对

使用道具 举报

结帖率:30% (6/20)

签到天数: 9 天

发表于 2020-12-29 18:39:59 | 显示全部楼层   江西省九江市
优化还不够啊 再优化下吧
回复 支持 反对

使用道具 举报

结帖率:100% (26/26)

签到天数: 14 天

发表于 2020-12-29 17:47:17 | 显示全部楼层   江苏省南通市
百万行文本用哈希表大概也就两三秒吧
回复 支持 反对

使用道具 举报

签到天数: 4 天

 楼主| 发表于 2020-12-29 17:04:01 | 显示全部楼层   山东省滨州市
wei615 发表于 2020-12-29 16:50
能解决问题就是好的咯

强迫症,没办法,实现同样的问题,我肯定追求效率高的,何况是这种一眼就能看出来效率问题的
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)

签到天数: 7 天

发表于 2020-12-29 16:50:58 | 显示全部楼层   柬埔寨
禁回忆 发表于 2020-12-29 16:49
没啥,就是看到问答区那个帖子后,去看了一下精易论坛的【文本_去重复文本】命令,他写的效率太低了,他 ...

能解决问题就是好的咯
回复 支持 反对

使用道具 举报

签到天数: 4 天

 楼主| 发表于 2020-12-29 16:49:24 | 显示全部楼层   山东省滨州市
wei615 发表于 2020-12-29 16:40
我看的一脸懵  哈哈哈 支持咯

没啥,就是看到问答区那个帖子后,去看了一下精易论坛的【文本_去重复文本】命令,他写的效率太低了,他自己都已经写了更高效的文本分割,结果没用,有可能是考虑到其他因素。但是这个遍历循环我实在是忍不了
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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