bsdiff
使用max(17*n,9*n+m)
字节的内存(其中 n 是旧文件的大小,m 是新文件的大小)根据http://www.daemonology.net/bsdiff/
在以下情况下,是否有更轻松(就内存而言)的替代方案?
- 仅当我意识到
- 我有
sudo
力量 - 文件大小在 1 GiB 到 10 GiB 之间
我的用途:
- 将文件从外部驱动器复制到
tmpfs
- 许多,许多写入操作将发生在文件中
tmpfs
(我不知道在大型二进制写入将会发生) - 使外部驱动器中的文件与
tmpfs
目前我有两个解决方案:
- 运行
bsdiff
以获取补丁(并将补丁应用到外部驱动器中的文件) - 这对我来说不起作用;我使用的计算机没有足够的内存来运行bsdiff
这个大文件。 - 将整个文件复制到外部驱动器。这可行,但会耗尽闪存擦除空间(记住,我正在处理大文件)并且需要很长时间(冗余复制)。
注意:我能够同时拥有“原始副本”(来自外部驱动器)和“工作副本”(与来自外部驱动器的副本相同,但将对此文件进行许多更改)tmpfs
。
监控文件更改并据此构建补丁是否可行(并且内存效率更高)?如果可以,怎么做?