Bendi新闻
>
微信为什么傻乎乎的同一个文件存储多份?

微信为什么傻乎乎的同一个文件存储多份?

我发现这可能是一个非常典型的关于微信存储被误解的问题,尤其是还算懂一点点技术的网友,就更会不加思索,以讹传讹,然后误导更多人。

微博网友给我的留言,微信公众号收到的留言,都有不少人提到这个问题,既然这么典型,那就有必要说一下这个经典的微信「文件重复存储多份」的问题。

类似的问题,我以前其实写过科普文做过说明,不过时间久了,我早就忘了,而且这次又稍微有点不同。

网友典型的疑问是这样的:微信为什么傻乎乎的一个文件存储多份?难道他们不知道校验一下文件 MD5 吗?发现重复就不要存了嘛。

咦,你说,如果普通网友都能明白这么简单的问题,微信那帮开发的同学能傻到不知道吗?这不符合常理吧?

有人补刀说:我有证据。贴出类似图一的信息,说:你看,我转发一个文件到不同的群,然后呢,你看,操作系统里就出来了多个重复的文件。

算不算有图有真相?

我相信,这时候,如果这位朋友去检查一下每个文件的详细大小,会发现他们文件大小也是一样的。

你看,这难道还不是重复存储了?连证明图都拿出来了,你服不服?

眼见,不一定为实。 眼见,不一定为实。 眼见,不一定为实。

我问微信的开发团队,你们咋回事啊,还打算要年终奖了不?之前没有重复存储文件,这难道后续的版本引入了新的 Bug?

还真没有重复存储。

微信在 Windows 上的实现,是通过「硬链接」(Hard Link) 的机制。其实只要对操作系统知识有基础的网友,一看到「硬链接」这个关键词,可能就会恍然大悟。但也不是全部,很多科班毕业的网友居然也没思考过这个问题,还继续硬杠。

但是,毕竟,99.99% 的网友没有一点操作系统(OS)的基本概念。

那么,怎么证明这些不同名字的文件其实是同一个文件呢?现在 Windows 系统自带一个命令行工具,叫 fsutil,用这个命令行工具探测一下这几个不同名字的文件,会发现文件 ID 是相同的。如果是不同的文件,文件 ID(File ID)是不同的。

背景知识:创建一个已有文件的硬链接,并不占用双倍的物理存储空间。尽管,你查看这个新创建的文件大小,和原文件一样大。

补充,Android 上实现机制并不一样。但是 iOS / macOS / Windows 是类似的。

但是略懂一点技术的人可能还会提问:我记得操作系统里有软链接(Soft Link) 的啊,微信存储重复文件为啥不用软链接?

这题我会。

答:如果用软链接的话,万一这第一份文件删除了,后面的文件就都不可访问了。

到这里我可以做一下基本结论:

网友所认为的「微信为什么傻乎乎的同一个文件存储多份」其实是一种误解。微信在这地方的技术实现并没有太大问题。

但是,吹毛求疵一点的说,微信开发团队的同学依然有一定责任。为什么这么说呢?既然,你用的是硬链接的方式,那么,文件名字能不能不要太随意,如果新创建的文件加上一个后缀,比如:

  • 测试.txt 

  • 测试_lnk0.txt 

  • 测试_lnk1.txt

是不是就会让一些略懂技术的网友,增加一些了解呢?但这个细节,我就不懂实现起来有多复杂了。毕竟,众所周知,我曾经是个「不写代码的 CTO」……

延伸阅读:如何科学地证明微信技术做得很垃圾?

微信扫码关注该文公众号作者

来源:小众消息

相关新闻

知乎瞎扯|为什么大雄的父母愿意养活哆啦 A 梦?一个已婚男人的心里话:为什么老婆付出再多,我都不会感激?知乎热门提问共情无数人:为什么妈妈总是闷闷不乐,还轻而易举夺走全家的快乐?CVPR 2024|生成不了光线极强的图片?微信视觉团队有效解决扩散模型奇点问题爆火的多模态微信交流群成立!Airchat,硅谷i人的微信,还是下一个Clubhouse?现在的中学生到底多难管?一个新手班主任的「炼狱」现在的中学生到底多难管?一个新手班主任的自白无孔不入的微塑料颗粒有多可怕?最新研究:微塑料在被摄入后能穿越肠道进入血液系统,损伤人体造血功能大话红楼215:贾宝玉在大观园的生活有多淫荡?他为什么要做贾芸的爸爸?熬夜时,如果器官都在一个微信群里会聊什么?法国超市里奇奇怪怪的蔬菜那么多,为什么就它最贵?!顶尖文理学院学生:为什么戏剧是一个值得尝试的选择?微信置顶越多,对象越少???????为什么超市里的蓝莓多是125g一盒?为什么街上背大包的人越来越多了?请特朗普上身的邪教,咋还有那么多人信呢?微信音乐:在线音乐的下一个搅局者郭德纲与马斯克合体,2024第一个爆火的Al写真为什么是它?为什么确诊ADHD的成年人越来越多了?微信小游戏在PC上有多猛?时长是手游3.9倍、ARPU 2倍、付费率2.4倍杨振宁102岁了,为什么说他是一个“最正常的天才”?微信在电脑端推出了一个效率神器?遇到一个好教授有多重要?这些美国大学的教授堪称“地表最强”!
logo
联系我们隐私协议©2024 bendi.news
Bendi新闻
Bendi.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Bendi.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。