在windows mobile设备上,我正在使用的软件依赖于sdf文件作为它的数据库。该软件的目标平台是“不太理想的”,并且每隔一段时间硬重置一次。在遥远的过去,我们丢失了数据。现在我们关闭数据库,并将SDF文件复制到SD卡。如果设备被硬重置,我们将恢复应用程序(也在SD卡上)和数据库。
我不关心恢复(目前还没有)。我们现在的问题是,做一个“备份”花费了大量的时间,因为SDF是7+内存,写入sd卡的速度很慢很慢。
我的老板建议我们创建文件“块”的散列,然后仅当散列的比较结果为!=时才写入目标文件。
所以问题来了。
如果一个文件只有一个副本,并且无法与其原始文件进行比较,那么如何测试该文件是否发生了更改。
我只是想来点头脑风暴。
发布于 2009-12-10 09:15:59
只需将块的散列存储在某个地方即可。如果你知道你的散列是什么,你不需要“备份”副本来比较。显然,这至少为一个散列带来了鸡和蛋的问题,但复制单个“块”是一个小得多的问题。
不过,您提出的方法仍然会有性能问题,因为在由电池供电的缓慢CPU上,散列一个大文件不会是一个很好的操作。
我假设你没有细粒度的控制来跟踪你修改的文件部分,然后当你需要备份时只更新那些部分?
https://stackoverflow.com/questions/1877623
复制相似问题