|
前提: 要求至少算出来的结果和mysql及php里的md5函数计算结果要一至
灰鸽子的md5算法计算字符串
- var
- tmp:string;
- td:dword;
- i,j:integer;
- begin
- td:=gettickcount;
- i:=0;
- while(i<10000)do
- begin
- tmp:=StrMD5('http://www.nagomes.com/disc');
- i:=i+1;
- end;
- td:=gettickcount-td;
- memo1.Lines.Add(tmp+' '+inttostr(td)+'s');
- end;
复制代码
10000次的时间是 250s
indy的md5算法计算字符串
- var
- tmp:string;
- td:dword;
- i,j:integer;
- begin
- td:=gettickcount;
- i:=0;
- while(i<10000)do
- begin
- tmp:=StrToMD5('http://www.nagomes.com/disc');
- i:=i+1;
- end;
- td:=gettickcount-td;
- memo1.Lines.Add(tmp+' '+inttostr(td)+'s');
- end;
复制代码
10000次的时间是47s
灰鸽子的md5算法计算文件
- var
- tmp:string;
- td:dword;
- i,j:integer;
- filesen:TMemoryStream;
- begin
- i:=0;
- filesen:=TMemoryStream.Create;
- filesen.LoadFromFile('D:\project.syant\0005PHP\htdocs\rub\smo.database.php');
- td:=gettickcount;
- while(i<1000)do
- begin
- tmp:=GetMD5(filesen.Memory,filesen.Size);
- i:=i+1;
- end;
- td:=gettickcount-td;
- filesen.Free;
- memo1.Lines.Add(tmp+' '+inttostr(td)+'s');
- end;
复制代码
1000次的时间是266s
indy的md5算法计算字符串
- var
- tmp:string;
- td:dword;
- filesen:TMemoryStream;
- i,j:integer;
- begin
- i:=0;
- filesen:=TMemoryStream.Create;
- filesen.LoadFromFile('D:\project.syant\0005PHP\htdocs\rub\smo.database.php');
- td:=gettickcount;
- while(i<1000)do
- begin
- filesen.Position:=0;
- tmp:=StreamToMD5(filesen);
- i:=i+1;
- end;
- td:=gettickcount-td;
- filesen.Free;
- memo1.Lines.Add(tmp+' '+inttostr(td)+'s');
- end;
复制代码
1000次的时间是 407s
|
|