wxf666 最近的时间轴更新
wxf666

wxf666

V2EX 第 280897 号会员,加入于 2018-01-08 18:22:24 +08:00
wxf666 最近回复了
13 小时 11 分钟前
回复了 wangpugod2003 创建的主题 程序员 讨论一道面试题啊(take home task)
@wangpugod2003 #2 楼主,我突然对你的 10GB 文件感兴趣。。


假设你 10GB 二十亿条,那平均每条 (10 << 30) / 2e9 = 5 字节,

去除空格、换行 2 字节,还剩 3 字节,你是怎么存得下 10 位数的 ID ,和几位数的 value 呢?


14 小时 20 分钟前
回复了 wangpugod2003 创建的主题 程序员 讨论一道面试题啊(take home task)
@wxf666 #5 等会儿,我以为是,求出现最多次数的 ID 了。。

那你这个算法,应该没问题的呀?

14 小时 25 分钟前
回复了 wangpugod2003 创建的主题 程序员 讨论一道面试题啊(take home task)
极端情况下,每个 ID 只出现一次,

你是要在内存里,保留整个 几百 GB 的 ID 吗?

2 天前
回复了 ComplexPug 创建的主题 程序员 关于一个经典海量数据的问题
@ComplexPug #11

1. 噢,说错了,是 2048 长度的哈希表《数组》。

2. 感觉你是想说,计算完一个文件后,就分别把 2048 个哈希表里的频率统计,追加到 2048 个文件里?

计算完所有文件后,再挨个频率文件,计算总频率,且始终只保留频率前 100 的字符串?

感觉这方法是准确的,但极端情况下,频率文件 > 内存限制时,会爆内存。

比如,所有字符串只出现一次,原文件大小 / 2048 > 内存限制了。。

或者,被恶意构造字符串了,使得所有 str.hash() % 2048 后,都挤在同一个文件内。。
2 天前
回复了 ComplexPug 创建的主题 程序员 关于一个经典海量数据的问题
@ComplexPug #9

假设你是单线程,计算完第一个文件里,每个字符串次数后,

你要对那 2048 长度的哈希表,做什么呢?


1. 啥也不干,继续算第二个文件?

(若原文件,每个字符串只出现一次,那你不就相当于在内存里,保留整个原文件了吗。。)


2. 遍历哈希表的,2048 个子哈希表,丢弃 100 名外的?

(若原文件,每个字符串出现两次,唯独一个字符串,出现 2048 次,但分散在每个分割后的文件里。岂不是会被你,每次遍历完一个文件后,丢弃掉?)


3. 我理解错了,等待你补充。。
为啥现在 Go ,不支持 Win8.1- 了呢。。

会不会明年 Win10 支持服务结束后,也只能跑在 Win11+ 上了呢。。

@sudosu #43 微软不要它口碑了吗?

驱动都是要微软认证,才能运行的呀?

怎么系统设计,就不经微软允许了呢?

难道这只是驱动签名收费的一个由头借口?

3 天前
回复了 ComplexPug 创建的主题 程序员 关于一个经典海量数据的问题
@ComplexPug #7 关于第二个问题:

1. 直观上说,每个字符串都只出现一次,最后取哪 100 个字符串呢?

2. 假如说,题目保证肯定有 100 个字符串,出现次数最多。

那如果,我这样构造原始文件呢:

你分割的前 2047 个小文件里,所有字符串都只出现一次,
在第 2048 个文件里,100 个字符串出现两次。

你在构造哈希表,甚至每个分组统计 TopK 时,会不会要在内存里,保留几乎整个原始文件的字符串了?

那内存会不会爆炸了。。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3123 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 00:41 · PVG 08:41 · LAX 17:41 · JFK 20:41
Developed with CodeLauncher
♥ Do have faith in what you're doing.