TListのInsertの高速化をするには


森本  2007-06-22 16:34:36  No: 26802  IP: 192.*.*.*

以下の処理を比べた場合に
AddとInsertの処理時間が200倍ほどかかります。
Insert処理を高速で行う方法があれば教えてください。
なければ「ない」と教えてくいただけるとありがたいです。

List: TList;
for i := 1 to 100000 do List.Add(PosDT);
for i := 1 to 100000 do List.Insert(0, PosDT);

編集 削除
Basser  2007-06-22 16:53:57  No: 26803  IP: 192.*.*.*

TList.Capcity でどうですか?
Insert処理用というよりもAddの場合にも効果があります。

Insertの場合メモリの移動処理があるのでどうしてもAddより遅くなると思いますが...

編集 削除
 2007-06-22 17:08:11  No: 26804  IP: 192.*.*.*

for文をdowntoにして、Add()でいいのでは?

編集 削除
monaa  2007-06-22 20:34:43  No: 26805  IP: 192.*.*.*

無いですな。
賢くAddしましょう。

編集 削除