Fórum Diferença de performance em rotina de SysUtils #266945
01/02/2005
0
Dae!
Eu copiei a rotina StrLen pra minha unit e testei a performance em comparação com a original em SysUtils. Pra minha surpresa, a rotina original fez bem melhor. O código em SysUtils não é fake, porque eu o vi na janela da CPU. Eu cuidei pra que a rotina ficasse alinhada em 16 bytes.
Será que o cache tem sempre uma versão fresca da original na memória e chuta a minha? Sei lá...
B.
Eu copiei a rotina StrLen pra minha unit e testei a performance em comparação com a original em SysUtils. Pra minha surpresa, a rotina original fez bem melhor. O código em SysUtils não é fake, porque eu o vi na janela da CPU. Eu cuidei pra que a rotina ficasse alinhada em 16 bytes.
procedure TForm1.Button1Click(Sender: TObject);
var
S, F: Int64;
I: Integer;
begin
Sleep(0);
QueryPerformanceCounter(S);
for I := 99999 downto 0 do
{SysUtils.}StrLen(P);
QueryPerformanceCounter(F);
Caption := IntToStr(F - S);
end;Será que o cache tem sempre uma versão fresca da original na memória e chuta a minha? Sei lá...
B.
Beppe
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)