为什么我们需要BitSet
现在假设我们有一个搜索引擎的应用, 文档总数是100w, 文档ID是从0开始的连续自增序列. 每次搜索请求召回的文档数从0到100w之间, 要求你设计一个缓存, 缓存下每一次请求召回的全部文档的ID, 目标是内存占用要尽量少.
思路1:
直接用一个set保存所有召回的id, 这样的话如果一次请求召回的结果数比较少的时候还好, 在极端情况(召回量为100w时)下, 按一个int 4个byte来算, 最后需要4G内存来保存一次请求的结果.显然有点太大了.
思路2:
用一个长度为100w的boolean[]来保存
原创
2021-04-21 11:09:42 ·
141 阅读 ·
0 评论