五千年(敝帚自珍)

主题:【原创】浏览器是怎么变成操作系统的 -- 美人他爹

共:💬233 🌺560
全看分页树展 · 主题 跟帖
家园 5点同意,1点存疑

前面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。

总之,分割再比较的办法,对于如何分割十分敏感。感觉这个办法不够皮实。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河