现有代码中的索引模块中(b+树), 在节点数据的更新时, 节点内部的键值会发生移动, 目前代码中大量使用的是memcpy, 但是因为这种节点内的移动, src和dest肯定有公共区域, 在使用memcpy时,产生了内存重叠, 后来全部替换成了memmove, 记录一下。
网上查了查, 两者的效率几乎可以忽略不计, 有时间可以实测一下。
本文讨论了B+树索引模块中节点数据更新时的内存操作问题。具体分析了使用memcpy导致的内存重叠问题,并介绍了如何通过替换为memmove来解决这一问题。此外还提及了两种函数效率上的差异。
现有代码中的索引模块中(b+树), 在节点数据的更新时, 节点内部的键值会发生移动, 目前代码中大量使用的是memcpy, 但是因为这种节点内的移动, src和dest肯定有公共区域, 在使用memcpy时,产生了内存重叠, 后来全部替换成了memmove, 记录一下。
网上查了查, 两者的效率几乎可以忽略不计, 有时间可以实测一下。
3038

被折叠的 条评论
为什么被折叠?