gpt4 book ai didi

c++ - memcmp - 是否有更快的方法来按位比较两个缓冲区

转载 作者:行者123 更新时间:2023-11-30 02:27:05 38 4
gpt4 key购买 nike

我想以最快速有效的方式找出两个内存缓冲区(保存任意定义的值)在按位比较中是否相同。

我对 bool 值“相同”以外的任何东西都不感兴趣,我希望该方法尽快返回,即首先发现差异。

实现此目标的最佳方法是什么?我目前首先比较整体尺寸——我知道——然后使用memcmp 如果它们大小相同

memcmp( buf1_ptr, buf2_ptr, sizeof(buf1) )

这是我能做的最有效的事情吗?我应该将比较分成 for 循环的垃圾吗?

最佳答案

一般来说,memcmp 将由专家用汇编语言编写。在它解决的通用问题上,你非常非常不可能比他们做得更好。

如果您可以保证指针将始终(例如)在 16 字节边界上对齐,并且长度将始终是 16 字节的倍数,您也许可以执行通过使用像 SSE 这样的矢量化解决方案会好一点。 (在这种情况下,memcmp 可能最终也会使用 SSE,但它必须先进行一些测试以确保 - 您可以节省这些测试的成本)。

否则 - 只需使用 memcmp。

关于c++ - memcmp - 是否有更快的方法来按位比较两个缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42134679/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com