今天面试一家小厂后端开发,问了一个:50g的文件,服务器内存只有8g,怎么存?要求不能用大白话,口述代码,我说用hash把大空间转换为小空间,但面试官说即便压缩了也存放不下这么多,我又说分几台服务器,就问我代码怎么写,我。。。实在是能力不够😅。请教一下各位牛油怎么答
全部评论
这估计就是他们公司现在遇到的问题,这个内存是ram? 还是磁盘?
怎么感觉在考归并排序。。
直接我不会 你教我
一看就知道是让写分治代码的,内存不足最优解就是分治
把文件拆成小文件处理?
2进制压缩?
感觉像在嫖方案
往哪存?
存不进去不用想了,50g文件是放磁盘里的,内存就8g,也没说是什么文件,那天王老子来了也存不进去,最好的办法就是给数据行带元信息,存的时候在内存里维护一个map,数据落盘,内存里只放数据的hash值和磁盘位置的offset
好像 看到过 算法书上 不是剑指offer就是另外一本算法书
你得有一个具体的场景啊,如果是限定内存找数据就用分治,如果只是单纯的存然后用,那就LRU,事前不和面试官问清楚了哪能回答得好呢
仿照mr就行吧😂
原题,可以搜一下
M一下
怎么感觉像在问memory mapped file…
位图?
加虚拟内存
Bigmap 布隆过滤器
hadoop的map reduce?切片呗
😅现在操作系统不是都支持虚拟内存吗,直接io进不去?
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享