char数组forms有两个位图数组,有数百万条记录。 什么可能是使用C比较它们的最快方法。
我可以想象在for循环中一次使用按位运算符xor 1个字节。
关于位图的重点:
目标:
这个答案假设您将’位图’表示为0/1值的序列而不是’位图图像格式’
如果您只有两个相同长度的位图并希望快速比较它们,那么memcmp()
将会像评论中建议的那样有效。 您可以尝试使用SSE类型优化,但这些并不像memcmp()
那么简单。 memcmp()
假设你只是想知道“他们是不同的”,仅此而已。
如果你想知道它们有多少位不同,例如615位不同,那么除了对每个字节进行异或并计算差异数之外,你几乎没有选择。 正如其他人所说,您可能希望一次以32/64甚至256位执行此操作,具体取决于您的平台。 但是,如果数组的长度是数百万字节,那么最大的延迟(使用当前的CPU)将是将主内存传输到CPU的时间,并且CPU的作用并不重要(这里有很多注意事项)
如果你的问题更多的是要求比较A和B,但是你真的这么做很多次,比如A到B和C,D,E等,那么你可以做几件事
所有选项A..D都是关于减少主存储器访问,因为这是任何性能增益的结点(对于所述的问题)
以上就是c/c++开发分享C比较两个位图的最快方法相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/544922.html