首页
学习
活动
专区
圈层
工具
发布

✅上亿数据,限制1G内存,如何去重?

所以,位图最大的好处就是节省空间。位图有很多种用途,特别适合用在去重、排序等场景中,著名的布隆过滤器就是基于位图实现的。...位图的优势空间效率优势:为徒极大的节省了存储空间,对于大量稀疏数据,特别是当元素数量远大于实际存在的项时,相比较于使用传统的列表、集合等数据结构,位图的空间占用极小。...了解了什么是BitMap,那么我们就可以使用BitMap来解决大量数据去重的问题40亿个无符号整数内存只有1G,如果要去重的话,如何解决假设40亿个无符号整数数据都是10位的话,如果直接使用内存来存储,...大约需要14.9GB 的空间。...总字节数转换为GB:4*4000000000 / 1024 / 1024 /1024 = 14.9 GB考虑到其中有一些重复的数据,即使这样1G的空间基本上也是不够的。

1.1K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    上亿数据,限制1G内存,如何去重?

    所以,位图最大的好处就是节省空间。 位图有很多种用途,特别适合用在去重、排序等场景中,著名的布隆过滤器就是基于位图实现的。...位图的优势 空间效率优势:为徒极大的节省了存储空间,对于大量稀疏数据,特别是当元素数量远大于实际存在的项时,相比较于使用传统的列表、集合等数据结构,位图的空间占用极小。...了解了什么是BitMap,那么我们就可以使用BitMap来解决大量数据去重的问题 40亿个无符号整数内存只有1G,如果要去重的话,如何解决 假设40亿个无符号整数数据都是10位的话,如果直接使用内存来存储...,大约需要14.9GB 的空间。...总字节数转换为GB:4*4000000000 / 1024 / 1024 /1024 = 14.9 GB 考虑到其中有一些重复的数据,即使这样1G的空间基本上也是不够的。

    86210

    40亿个QQ号,限制1G内存,如何去重?

    40亿个unsigned int,如果直接用内存存储的话,需要: 4*4000000000 /1024/1024/1024 = 14.9G ,考虑到其中有一些重复的话,那1G的空间也基本上是不够用的。...使用位图的话,一个数字只需要占用1个bit,那么40亿个数字也就是: 4000000000 * 1 /8 /1024/1024 = 476M 相比于之前的14.9G来说,大大的节省了很多空间。...所以,位图最大的好处就是节省空间。 位图有很多种用途,特别适合用在去重、排序等场景中,著名的布隆过滤器就是基于位图实现的。 但是位图也有着一定的限制,那就是他只能表示0和1,无法存储其他的数字。...布隆过滤器的主要优点是可以快速判断一个元素是否属于某个集合,并且可以在空间和时间上实现较高的效率。但是,它也存在一些缺点,例如: 布隆过滤器在判断元素是否存在时,有一定的误判率。

    86520

    1G到5G的分野之战,通信洗牌即将开始

    有人的地方就有江湖,通信江湖上,充斥着“尔虞我诈”,从模拟信号到数字信号,从1G、2G、3G、4G到如今甚嚣尘上的5G,站对了队是平步青云,站错了队就是“万劫不复”。...1978年是一个有意思的年份,扭转中国经济发展的事情发生在这一年,改变传统通信系统的里程碑发明也同样发生在1978年,当时贝尔实验室开发出了全球第一款高级移动电话系统,采用的是模拟信号和频分多址技术,1G...垄断了1G的摩托罗拉,也让美国成功将第一代通信标准握在自己手中。而欧洲各国各自为政,各种通信标准和制式让人眼花缭乱。 通信作为从军方转向民间的技术,发展背后很多时候也是国家和国家之间的角力。...1G到2G迭代期间,摩托罗拉没跟上转型节奏掉了队。3G到4G,北电宣布破产,阿尔卡特和朗讯合并。之后,西门子、摩托罗拉和阿尔卡特朗讯也并入了诺基亚。...文章部分资料参考: 1、《从1G到5G通讯产业变迁史回顾》 2、《4G通信争夺战,各国博弈背后隐藏着什么样的真相?》 3、《中国通信运营商发展史》

    85320

    用户空间和内核空间

    用户空间和内核空间服务器大多都采用Linux系统,所以主要研究Linux系统。用户应用如果要使用硬件资源,必须要经过Linux内核,通过内核去与硬件交互。...所以 用户应用 和 内核 要隔离开,避免硬件使用的冲突:进程的寻址空间会划分为两部分: 内核空间 、 用户空间 。...用户空间 只能执行受限的命令(Ring3),而且不能直接调用系统资源,必须通过内核提供的接口来访问。内核空间 可以执行特权命令(Ring0) ,调用一切系统资源。...Linux系统为了提高IO效率,会在用户空间和内核空间都加入缓冲区:写数据时,要把用户缓冲数据从 用户缓冲区 拷贝到 内核缓冲区 ,再写入设备。...用户空间缓冲区 会向 内核空间 发起读请求,内核空间会等待网卡的数据准备完成,完成后会把数据 拷贝 到 内核缓冲区 ,然后会将数据从 内核缓冲区 拷贝到 用户缓冲区 。至此,读数据完成。

    30710

    5G 缘起:从 1G 到 5G,你了解多少?

    5G 现在是个非常热门的话题,如果想要深入了解它,你就得知道从 1G 到 5G 是怎么演变的。从中你可能看到一些技术趋势,帮助你做出决策,把握机会。...上世界 70 年代,摩托罗拉为主的公司制定了 1G 的标准。进入 90 年代,诺基亚研制了新一代的移动通信标准,也就是 2G。 从 1G 到 2G 有哪些改进呢?如下图。...移动通信标准 特点 主导公司 1G 模拟电路 摩托罗拉 2G 数字电路:体积小,省电,收发短信方便 诺基亚 从 1G 到 2G,单位能量处理信息的能力提升百倍。...到 5G 的变化过程: 1G 诞生,人类开始进入移动电话通讯时代。...纵观 1G 到 5G 的发展过程,都是沿着网络大融合的趋势行进。网速极大的提升,实时性敏感的互联网应用便得以开展和普及,比如车联网和无人驾驶。

    1K10

    linux之用户空间和内核空间

    linux驱动程序一般工作在内核空间,但也可以工作在用户空间。下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们。...将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为“内核空间”。...内核空间中存放的是内核代码和数据,而进程的用户空间中存放的是用户程序的代码和数据。不管是内核空间还是用户空间,它们都处于虚拟空间中。...用户空间模式的驱动一般通过系统调用来完成对硬件的访问,如通过系统调用将驱动的io空间映射到用户空间等。因此,主要的判断依据就是系统调用。...用户空间的应用程序,通过系统调用,进入内核空间。这个时候用户空间的进程要传递很多变量、参数的值给内核,内核态运行的时候也要保存用户进程的一些寄存器值、变量等。

    5.1K20

    场景题:如何在1G内存下实现40亿QQ号去重?

    空间占用量预测 正常情况下,如果将40亿QQ号存储在Java中的int类型,每个int占用4字节(byte),则40亿个QQ号占用的空间大小为: [ 4000000000 \times 4 / 1024...这样,40亿个QQ号占用的位数组空间为: [ 4000000000 / 1024 / 1024 / 1024 / 8 = 0.465 \text{ GB} ] 不到1G的内存就可以存储40亿个QQ号。...element2); System.out.println("元素 " + element2 + " 可能存在: " + mightExist2); } } 小结 位数组:没有误判,但空间利用率低...布隆过滤器:空间利用率高,但存在对已经存在的数据的误判(不存在的数据没有误判). 因此,如果对精准度要求高可以使用位数组;如果对空间要求苛刻,可以考虑布隆过滤器.

    29910

    独立表空间&系统表空间总结---innoDB表空间(三十五)

    上篇文章说了系统表空间的data dictionary header: Data dictionary header(2) --系统表空间结构(三十四) 前面我们说了独立表空间和系统表空间: 独立表空间...: 当在建立表的时候,在文件系统空间会生成同名的目录或者文件,一个页有16kb,我们都知道查询是通过b+树查找的,但如果数据太多,页之前又是通过双向链表查询的,物理空间不在一起,这时候查询就是随机I/O...,一共4个,但多了几个表空间特有的属性 。...比如file space header,这个是重点,放着表空间直属管理的东西,比如多少个页面,初始化前后的值等,还存着区链表的基点和段链表的基点,方便后面查找。...系统表空间: 系统表空间总体来说和独立表空间类似,但系统表空间存着系统特有的页面,是表空间之首,space id为0。

    2.2K40
    领券