|
Эффективность strstr
|
Posted by: Heromantor on October 14, 2001 at 23:38:54
Posters Details: [195.58.50.73] [195.58.50.73], X-Forwarded 4: [] [Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0; NetCaptor 6.5.0RC1)]
Вот какая %ерня... Подумал я и решил что strstr для моего частного случая не эффективна(случай такой strstr(buf,"\r\n")) написал такую char *findcr(const char *str) { char *ret; _asm cld _asm mov edi,str _asm mov esi,edi _asm mov ecx,BUFSZ _asm mov ebx,ecx _asm xor eax,eax _asm repne scasb _asm sub ebx,ecx _asm mov edi,esi _asm mov ecx,ebx _asm xor ebx,ebx _asm mov eax,0x0D _asm repne scasb _asm jnz Fin _asm cmp [edi],0x0A _asm jne Fin _asm mov ebx,edi _asm dec ebx Fin: _asm mov [ret],ebx return ret; } Так она работает раз в 50 медленее strstr почему? Вродеж cmpsb работатет довольно быстро(по крайней мере на 486 точно :)). И еще на 486 и ниже пересылка из регистра в регистр была быстрее на сколь-ко то там тактов, а на пнях это еще актуально? Или не стоит изголяться?
Follow Ups:
|
|