是否可以在单个处理器周期内比较整个内存区域?更准确地说,是否可以使用某种 MMX 汇编指令在一个处理器周期内比较两个字符串?或者 strcmp
的实现是否已经基于该优化?
编辑:
或者是否可以指示 C++ 编译器删除重复的字符串,以便可以简单地通过它们的内存位置来比较字符串?而不是 memcmp(a,b)
由 a==b
比较(假设 a
和 b
都是 native const char*
字符串)。
最佳答案
只需使用标准 C strcmp()
或 C++ std::string::operator==()
进行字符串比较。
它们的实现相当不错,并且可能被编译成一个高度优化的程序集,即使是有才华的程序集程序员也很难与之匹敌。
所以不要为小事而烦恼。我建议考虑优化代码的其他部分。
关于一个时钟周期内的 C++ 字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1128096/