在linux上修补二进制文件的好算法是什么

在linux上修补二进制文件的好算法是什么,linux,shell,memory,embedded-linux,patch,Linux,Shell,Memory,Embedded Linux,Patch,我试图通过为几乎相似的二进制文件创建补丁来减少向嵌入式linux设备的数据传输。 我的设备内存有限,因此对于大约36-60mb的二进制大小,像bsdiff和bspatch这样的繁重算法在我的目标设备上是负担不起的。我想知道哪些命令有最好的算法来区分和修补文件,可以使用最小的内存量。我附加输出的df和自由以及在这里 结果表明,rdiff在内存方面使用了稍好的算法,但创建的补丁(增量)文件比bsdiff或xdelta3都大。xdelta3创建最小的补丁文件,但比rdiff使用更多内存创建补丁。因此,

我试图通过为几乎相似的二进制文件创建补丁来减少向嵌入式linux设备的数据传输。 我的设备内存有限,因此对于大约36-60mb的二进制大小,像bsdiff和bspatch这样的繁重算法在我的目标设备上是负担不起的。我想知道哪些命令有最好的算法来区分和修补文件,可以使用最小的内存量。我附加输出的df和自由以及在这里


结果表明,rdiff在内存方面使用了稍好的算法,但创建的补丁(增量)文件比bsdiff或xdelta3都大。xdelta3创建最小的补丁文件,但比rdiff使用更多内存创建补丁。因此,就创建的面片大小而言,我们有--xdelta3 在应用补丁时的内存消耗方面,我们有--rdiff
希望它能帮助人们优化网络数据传输

你需要精确地指定你拥有的约束(如内存中的数量),因为大多数人不认为<代码> BSDIFO 或<代码> XDela/Cord>是用于此目的的不寻常的工具。我不能使用BSPATCH来处理35 MB文件。我猜bsdiff会占用更多内存,大约是文件大小的17倍。因此,我正在寻找一种更便宜的算法,即使它需要大量的时间来修补。将修补工作卸载到一个10美元的Raspberry Pi Zero W上,内存512MB如何?这是一种传统设备,硬件更改是不可能的。因此,我正在寻找一种能够在约束条件下工作的算法。@bk2204问题不是二进制文件不存在。问题是什么算法在linux下使用最小内存。Rdiff也可能是一个解决方案,但我不知道它是否也需要太多内存。Bsdiff的详细信息就在这个链接上,它消耗了大量内存,可能与嵌入式世界格格不入。