環境:
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;