環境:
PentiumM 2.00GHz
Memory 1GB
Delphi7
Windows XP Pro SP2
メモリ使用量などは見ていません。確保開放の速度だけです。
| ベンチ | 文字列結合:Borland | 文字列 結合:FastMM4 | StringList1:BorlandMM | StringList1:FastMM4 | StringList2:BorlandMM | StringList2:FastMM4 |
| 1 | 375 | 422 | 1078 | 687 | 657 | 437 |
| 2 | 188 | 265 | 984 | 563 | 515 | 219 |
| 3 | 171 | 266 | 985 | 546 | 500 | 219 |
| 4 | 172 | 265 | 984 | 563 | 500 | 203 |
| 5 | 172 | 266 | 969 | 547 | 500 | 219 |
| 6 | 172 | 328 | 984 | 562 | 516 | 203 |
| 7 | 172 | 313 | 985 | 547 | 500 | 203 |
| 8 | 172 | 328 | 984 | 563 | 500 | 219 |
| 9 | 172 | 312 | 1000 | 547 | 516 | 219 |
| 10 | 187 | 312 | 984 | 562 | 500 | 203 |
| 11 | 172 | 329 | 969 | 547 | 515 | 218 |
| 12 | 188 | 312 | 1000 | 562 | 531 | 219 |
| 13 | 172 | 328 | 985 | 547 | 532 | 203 |
| 14 | 187 | 313 | 968 | 547 | 531 | 219 |
| 15 | 172 | 328 | 985 | 578 | 547 | 203 |
| 16 | 188 | 328 | 984 | 562 | 531 | 219 |
| 17 | 171 | 312 | 984 | 547 | 516 | 203 |
| 18 | 188 | 329 | 969 | 563 | 531 | 219 |
| 19 | 187 | 312 | 1016 | 547 | 531 | 219 |
| 20 | 204 | 328 | 969 | 562 | 531 | 203 |
| 21 | 187 | 328 | 984 | 563 | 516 | 218 |
| 22 | 203 | 313 | 984 | 547 | 531 | 204 |
| 23 | 188 | 313 | 969 | 562 | 532 | 218 |
| 24 | 203 | 328 | 984 | 547 | 531 | 203 |
| 25 | 187 | 313 | 969 | 562 | 515 | 219 |
| 26 | 203 | 328 | 985 | 563 | 547 | 203 |
| 27 | 188 | 312 | 984 | 562 | 516 | 219 |
| 28 | 203 | 328 | 984 | 547 | 531 | 203 |
| 29 | 172 | 313 | 1000 | 563 | 531 | 219 |
| 30 | 187 | 328 | 969 | 562 | 532 | 203 |
| 31 | 188 | 328 | 984 | 547 | 515 | 203 |
| 32 | 218 | 312 | 985 | 578 | 532 | 219 |
| 33 | 187 | 313 | 984 | 563 | 531 | 203 |
| 34 | 188 | 313 | 985 | 547 | 547 | 218 |
| 35 | 187 | 312 | 968 | 562 | 531 | 204 |
| 36 | 204 | 312 | 985 | 547 | 531 | 218 |
| 37 | 187 | 313 | 984 | 563 | 516 | 203 |
| 38 | 203 | 312 | 969 | 546 | 531 | 219 |
| 39 | 188 | 328 | 984 | 563 | 531 | 203 |
| 40 | 187 | 313 | 1016 | 547 | 532 | 219 |
| 41 | 188 | 328 | 969 | 562 | 531 | 203 |
| 42 | 203 | 312 | 984 | 547 | 531 | 219 |
| 43 | 187 | 328 | 984 | 563 | 516 | 203 |
| 44 | 203 | 313 | 969 | 547 | 531 | 219 |
| 45 | 188 | 312 | 984 | 562 | 516 | 234 |
| 46 | 187 | 313 | 985 | 547 | 531 | 203 |
| 47 | 188 | 328 | 969 | 546 | 516 | 203 |
| 48 | 187 | 312 | 984 | 563 | 531 | 219 |
| 49 | 172 | 312 | 984 | 547 | 532 | 203 |
| 50 | 203 | 313 | 1000 | 578 | 531 | 219 |
| 51 | 187 | 313 | 985 | 562 | 515 | 203 |
| 52 | 203 | 312 | 984 | 547 | 563 | 219 |
| 53 | 188 | 313 | 984 | 563 | 516 | 203 |
| 54 | 187 | 328 | 985 | 547 | 531 | 218 |
| 55 | 172 | 328 | 969 | 562 | 531 | 204 |
| 56 | 188 | 312 | 969 | 547 | 531 | 218 |
| 57 | 187 | 328 | 984 | 563 | 516 | 203 |
| 58 | 204 | 313 | 985 | 546 | 531 | 219 |
| 59 | 187 | 328 | 968 | 563 | 531 | 219 |
| 60 | 188 | 313 | 1000 | 547 | 532 | 203 |
| 61 | 172 | 328 | 969 | 562 | 515 | 219 |
| 62 | 187 | 343 | 984 | 547 | 547 | 203 |
| 63 | 188 | 313 | 985 | 563 | 516 | 219 |
| 64 | 203 | 328 | 968 | 562 | 531 | 203 |
| 65 | 187 | 313 | 985 | 547 | 531 | 219 |
| 66 | 203 | 328 | 968 | 563 | 532 | 203 |
| 67 | 172 | 312 | 985 | 546 | 515 | 218 |
| 68 | 187 | 328 | 984 | 579 | 547 | 204 |
| 69 | 188 | 313 | 985 | 546 | 516 | 218 |
| 70 | 203 | 328 | 1000 | 563 | 531 | 203 |
| 71 | 188 | 312 | 984 | 547 | 547 | 219 |
| 72 | 203 | 313 | 969 | 562 | 531 | 203 |
| 73 | 187 | 312 | 984 | 547 | 531 | 219 |
| 74 | 203 | 312 | 984 | 563 | 532 | 203 |
| 75 | 188 | 313 | 985 | 547 | 515 | 219 |
| 76 | 187 | 313 | 969 | 562 | 531 | 203 |
| 77 | 188 | 328 | 984 | 547 | 532 | 219 |
| 78 | 203 | 312 | 969 | 562 | 531 | 203 |
| 79 | 187 | 329 | 984 | 563 | 516 | 219 |
| 80 | 204 | 312 | 1000 | 547 | 531 | 203 |
| 81 | 187 | 328 | 984 | 562 | 531 | 219 |
| 82 | 188 | 328 | 985 | 547 | 531 | 218 |
| 83 | 172 | 313 | 984 | 547 | 516 | 203 |
| 84 | 218 | 328 | 969 | 562 | 531 | 219 |
| 85 | 188 | 312 | 984 | 547 | 531 | 203 |
| 86 | 187 | 313 | 985 | 578 | 532 | 219 |
| 87 | 172 | 328 | 968 | 563 | 515 | 219 |
| 88 | 187 | 312 | 985 | 547 | 532 | 203 |
| 89 | 188 | 312 | 984 | 546 | 531 | 219 |
| 90 | 203 | 313 | 1000 | 563 | 547 | 203 |
| 91 | 187 | 328 | 985 | 562 | 531 | 219 |
| 92 | 188 | 312 | 984 | 547 | 531 | 234 |
| 93 | 187 | 344 | 984 | 547 | 516 | 203 |
| 94 | 203 | 312 | 985 | 563 | 531 | 219 |
| 95 | 188 | 328 | 984 | 547 | 531 | 203 |
| 96 | 203 | 313 | 969 | 562 | 532 | 219 |
| 97 | 187 | 328 | 969 | 563 | 515 | 203 |
| 98 | 188 | 313 | 969 | 562 | 531 | 219 |
| 99 | 187 | 328 | 984 | 547 | 532 | 203 |
| 100 | 203 | 312 | 985 | 562 | 531 | 218 |
| 平均 | 平均: 190.76 | 平均: 318.1 | 平均: 982.98 | 平均: 557.48 | 平均: 527.98 | 平均: 214.05 |
テストコード
//文字列結合
procedure TForm1.Button1Click(Sender: TObject);
const
Cnt: Integer = 100;
var
a, b: String;
i, j: Integer;
d: DWORD;
ar: array[1..100] of DWORD;
begin
a := 'abcdefghijklmnopqrstuvwxyz';
for i := 1 to Cnt do begin
b := '';
d := timeGetTime;
for j := 0 to 1000000 do begin
b := b + a;
end;
ar[i] := timeGetTime - d;
Memo1.Lines.Add(IntToStr(ar[i]));
end;
d := 0;
for i := 1 to Cnt do begin
d := d + ar[i];
end;
Memo1.Lines.Add('平均: ' + FloatToStr(d / Cnt));
end;
//StringList1
procedure TForm1.Button2Click(Sender: TObject);
const
Cnt: Integer = 100;
var
SL: TStringList;
i, j: Integer;
d: DWORD;
ar: array[1..100] of DWORD;
begin
for i := 1 to Cnt do begin
d := timeGetTime;
for j := 0 to 1000000 do begin
SL := TStringList.Create;
SL.Add('HOGE');
SL.Free;
end;
ar[i] := timeGetTime - d;
Memo1.Lines.Add(IntToStr(ar[i]));
end;
d := 0;
for i := 1 to Cnt do begin
d := d + ar[i];
end;
Memo1.Lines.Add('平均: ' + FloatToStr(d / Cnt));
end;
//StringList2
procedure TForm1.Button3Click(Sender: TObject);
const
Cnt: Integer = 100;
var
SL: TStringList;
i, j, k: Integer;
d: DWORD;
ar: array[1..100] of DWORD;
begin
for i := 1 to Cnt do begin
d := timeGetTime;
for j := 0 to 100 do begin
SL := TStringList.Create;
for k := 0 to 10000 do
SL.Add('HOGE');
SL.Free;
end;
ar[i] := timeGetTime - d;
Memo1.Lines.Add(IntToStr(ar[i]));
end;
d := 0;
for i := 1 to Cnt do begin
d := d + ar[i];
end;
Memo1.Lines.Add('平均: ' + FloatToStr(d / Cnt));
end;