如何编写更好的strlen函数?

Vic*_*tor 12 c string optimization pointers c-strings

我正在阅读"写大代码卷2",它显示了以下strlen inslementation:

int myStrlen( char *s )
{
    char *start;
    start = s;
    while( *s != 0 )
    {
        ++s;
    }
    return s - start;
}
Run Code Online (Sandbox Code Playgroud)

该书说,这种实现对于没有经验的C程序员来说是典型的.在过去的11年里,我一直在使用C语言进行编码,我无法在C中看到如何编写比这更好的函数(我可以想到在汇编中编写更好的东西).如何在C中编写比这更好的代码?我看了glibc中strlen函数的标准库实现,我无法理解它的大部分内容.在哪里可以找到有关如何编写高度优化代码的更好信息?

Moj*_*sin 14

来自优化strlen(),Colm MacCarthaigh撰写的一篇博文:

不幸的是,在C中,我们注定是O(n)实现,最好的情况,但我们还没有完成......我们可以对n的大小做一些事情.

它提供了一个很好的例子,你可以在哪个方向加快速度.而另一个引用它

有时真的很快就会让你真的很疯狂.