易语言资源网 - 做最全的易语言资源下载社区
精易论坛授权登录

手机号码去重一千万2秒内,bitmap支持百亿号码,仅耗内存1.2G   [复制链接]

    2021-08-18 16:39:52
    高级教程源码
    易语言资源网
    4696 次浏览
    来源链接


因为朋友再移动外包公司上班,有手机号码去重删选的需要,朋友用的python,也是用的哈希去重方式,大概1000W手机数据去重处理速度在5到6秒左右,于是乎我也想用易语言实现以下,想试下易语言能否实现大数据的处理以及实现速度,论坛各种哈希表试了个便,最终得出结论,速度最快的是ASM哈希表,1000W处理时间在4到5秒之间,可以说是非常的快的了,但是用哈希表在易语言运行存在一个问题,我实测1000W号码占用内存大约是400多M,也就是说易语言最大能处理不过三四千万的数据,由于易语言是32位的,最大支持内存仅1.7G这样,内存占用到达1.7G就会自动程序崩溃,无法处理上亿的手机号码,不论你内存条有10G还是100G,但是易语言程序最大仅支持1.7G,实在是非常的限制。但是单从处理速度而言,论坛大神ASM哈希表确实是效率极高的了。后面网上看到bitmap处理上亿级别的手机号码处理,于是到易语言论坛查了下,发现还没人实现过,那我就来做下把。在特定的数据处理情况下,使用bitmap方式去重效率就会显得比哈希表去重更加高效,不仅速度有极大的提升,内存占用方面,即使999亿的手机号码,也仅仅占用1.2G的内存即可处理,极大的节省内存,能够在低配置的电脑上也能运行起来,具体的就不吹嘘,有兴趣的可以自行百度搜索bitmap了解下

最后上代码,cpu为i7 8700实测1000W手机号码数据用bitmap方式去重耗时1.9秒左右,论坛ASM哈希表方式去重4.5秒左右,一亿手机号码数据用bitmap方式去重耗时31秒左右,论坛ASM哈希表无法处理过大数据因而未知,如有更高效率的欢迎留言交流

处理耗时 包含读入文档,载入数据,去重,最后写出。论坛许多噱头都是只谈去重过程,无视读入和写出过程的评测都是耍流氓行为。

压缩包包含源码,请编译后测试,哈希表去重方式调用的论坛ASM哈希表模块,还有生成手机号码的源码一一附上,有兴趣的可以自己测试下



点我下载 (已有 282 次下载)

引用模块


源码文件名 模块文件名
手机号码去重处理bitmap.e
哈希表.ec
精易模块.ec


引用支持库


源码文件名 支持库文件名 支持库标识
手机号码去重处理bitmap.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
通用对象支持库 2.0 {A068799B-7551-46b9-8CA8-EEF8357AFEA4}
多线程支持库 2.0 5F99C1642A2F4e03850721B4F5D7C3F8
特殊功能支持库 3.1 A512548E76954B6E92C21055517615B0
生成手机号码.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
特殊功能支持库 3.1 A512548E76954B6E92C21055517615B0


[错误报告]   上一篇:比较简单的文本匹配...     下一篇:快捷启动,炫彩界面库制作火山PC+易语言...