Вот наткнулся на, как оказалось, очередное изобретение велосипеда: быстрая реализация strlen, функция strlen_my из блога smallcode, хотя также был найден аналог этого алгоритма на ассемблере от 1998 года Поля Сие (Paul Hsieh).
Посравнивал со strlen из libc во FreeBSD, фришная реализация обгоняет на порядок:
size_t strlen(str) const char *str; { const char *s; for (s = str; *s; ++s); return(s - str); }
Просмотрев множество реализация этой функции на koders.com, можно заметить, что большинство из них по сути являются различными вариантами фришной реализации. Похоже ничего быстрее пока не изобрели. 🙂
Хе-хе. Я тут тоже писал про дафс девайс и разворачивание циклов. Я уж было ненароком подумал, что strlen разворачивается в intrinsic, но не тут-то было.