从140秒到2秒的优化
作者从处理海量数字去重的场景切入:面对2亿个0到20亿之间的随机数字,需要统计其中的不重复记录总数。最初的思路是使用 Bloom Filter,但考虑到数据类型纯粹为数字,Bloom Filter 的开销显得偏重,于是转而采用更轻量级的 bitarray(位数组)来实现。 第一个版本基于 bitarray 的实现将处理时间从原来的 140 秒大幅压缩到了 2 秒。这种优化选择非常关键,因为它充分利用了数字数据的特点,用一个比特位直接映射一个可能的值(0 到 20 亿),从而在内存效率和速度之间取得了极佳的平衡。文章通过这个具体的优化案例,展示了如何根据数据特征选择合适的数据结构,对于处理类似的大规模数字去重或查找问题提供了直接的实践参考。