Board index » delphi » Fastcode CharPosRev B&V 0.4.0
Dennis
Delphi Developer |
Fastcode CharPosRev B&V 0.4.02006-11-25 05:08:17 PM delphi201 Hi Lets play a little with simple loop unrolling. First I pick the fastest of my non-unrolled functions for each CPU. On Opteron it is CharPosRev_DKC_Pas_8 CharPosRev_DKC_Pas_8_c 0 1447 2036 3483 CharPosRev_DKC_Pas_7_a 8 1469 2065 3534 CharPosRev_DKC_Pas_4_b 0 1697 2602 4299 CharPosRev_DKC_Pas_1_c 4 1706 2622 4328 CharPosRev_DKC_Pas_5_d 4 1712 2618 4330 CharPosRev_DKC_Pas_3_d 0 1723 2608 4331 CharPosRev_DKC_Pas_2_d 0 1735 2619 4354 CharPosRev_DKC_Pas_6_b 0 1735 2623 4358 function CharPosRev_DKC_Pas_8_a(SearchChar : Char; const S: string) : Integer; var Str, StrStart : PChar; LengthS : Integer; begin Result := 0; LengthS := Length(S); if LengthS>0 then begin StrStart := Pointer(S); Str := StrStart + LengthS - 1;//Points to last char in S repeat if Str^ = SearchChar then Break; Dec(Str); until (Str < StrStart); Result := Str-StrStart+1; end; end; Best regards Dennis Kjaer Christensen ---------------------------------------------------------------------------- ---- Jeg beskyttes af den gratis SPAMfighter til privatbrugere. Den har indtil videre sparet mig for at f?5740 spam-mails Betalende brugere får ikke denne besked i deres e-mails. Hent en gratis SPAMfighter her. |