掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
itemの検索を高速にしたいのですが。 (ID:1526)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
上の続きです。 (3)THashedStringList にコピーして、IndexOf sl := THashedStringList.Create; try sl.Assign(ListBox1.Items); for i := 0 to 99 do Idx[i] := sl.IndexOf(ListBox2.Items[i]); finally sl.Free; end; (4) (2)の方法で THashedStringList に置き換えた物。 sl := THashedStringList.Create; try sl.Assign(ListBox1.Items); for i := 0 to sl.Count - 1 do begin sl.Objects[i] := Pointer(i); end; sl.CaseSensitive := True; sl.Sort; for i := 0 to 99 do Idx[i] := Integer(sl.Objects[(sl.IndexOf(ListBox2.Items[i]))]); finally sl.Free; end; 結果 前処理 検索 (1) 0ms 4098ms (2) 2686ms 2532ms (3) 1179ms 343ms (4) 2549ms 53ms これは効果がありました。検索は桁が違ってきました。 (4)は前処理に時間がかかるので100回の検索だと、(3)の 方がトータルでは成績がいいですが、回数が増えれば増え るほど効果がでてきそうですね。 ※注 THashedStringList を使うには、Uses に、IniFiles を追加する。 この結果はあくまで私の環境で私が作ったサンプルでの結果なので、 参考程度にして、後は各自で検証して下さい。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.