主题:【原创】浏览器是怎么变成操作系统的 -- 美人他爹
前面5点都同意,溢美之词就不多说了。
最后一条我没有解释清楚。举个例子,譬如我手机上存着2008年的地图数据,假如云计算平台上的地图数据已经更新到了2009年版本,那么应该如何更新我手机上的地图数据呢?
最简单的办法,先删除手机上2008年版本的数据,然后下载2009年版本的数据。但是这样的做法,隐含着必须下载整套地图数据,从而占用带宽很多。
鉴于2009年版地图数据,比2008年版差不了太多。所以,如果云计算平台先算出2009版与2008版之间的差额,然后手机就只需要下载这个差额,差额+2008版=2009版。
师弟的办法是,先把2008版和2009版分割成若干小碎片,然后逐个比较小碎片之间的差距。这些差距的总汇,就是前面说的差额。
这个办法当然是可行的,但是很难保证差额的尺寸尽可能小。把问题简化一下,或许能够解释得更清楚。假设有两个byte arrays。2008版的数组有100个bytes。2009版的数据与2008版相差不多,只不过在2008版开头插入了新的5个bytes,这样2009版总共有105个bytes。
假如按照师弟的办法,先把2008版的数组分割为10段,每段10个bytes。同时把2009版的数据也按10个bytes一段,进行分割,这样分了11段。接下来,逐对比较这些小碎片,从第一对,到第10对,每对都有5个bytes的差异。总共差额至少有(5x10 + 5 = 55)bytes,但是事实上,差异只是头上5个bytes。
总之,分割再比较的办法,对于如何分割十分敏感。感觉这个办法不够皮实。
- 相关回复 上下关系8
🙂在这篇里根本没有提到浏览器 益者三友 字68 2009-08-27 17:55:55
🙂google wave似乎已经在预定这些协同标准了 益者三友 字0 2009-08-27 17:49:23
🙂这是一个caching问题在网络时代的变形 5 美人他爹 字1515 2009-08-27 07:01:47
🙂5点同意,1点存疑
🙂应该不是简单的分割 3 美人他爹 字1063 2009-08-27 19:19:54
🙂恩,你的diff patch的方式更好一些。 土豆丝 字0 2009-08-27 18:31:23
🙂谢谢:作者意外获得【通宝】一枚 鹦鹉 字60 2009-08-27 05:58:13
🙂应该是操作系统即浏览器 1 Bozhang 字402 2009-08-21 11:49:17