在Windows移动设备上,我正在处理的软件依赖于sdf文件作为它的数据库。 软件所针对的平台“不是最佳”,并且每隔一段时间就会重置一次。在遥远的过去,我们丢失了数据。现在我们关闭数据库,并将SDF文件复制到SD卡。如果设备硬重置,我们恢复应用程序(也在SD卡上)和数据库。
我并不关心恢复(还没有)。我们现在遇到的问题是,执行“备份”需要花费大量时间,因为SDF是7+ megs并且写入SD卡的速度慢得慢。
我的老板建议我们创建文件“块”的哈希值,然后只有当哈希值的比较为!=时才写入目标文件。
所以这就是问题。
如果您只能拥有该文件的一个副本,因此无法将其与原始文件进行比较,您将如何测试文件是否已更改?
我只是在拍摄一些头脑风暴。
答案 0 :(得分:0)
只需将你的块的哈希存储在某个地方。如果您知道哈希是什么,则不需要“备份”副本进行比较。显然,这会产生至少一个哈希的鸡和蛋问题,但复制一个“块”是一个小得多的问题。
你提出的方法仍然会遇到性能问题,因为散列大文件对于由电池供电的慢速CPU来说不是一个漂亮的操作。
我假设您没有粒度控件来跟踪您修改的文件部分,然后在需要备份时更新这些部分?