掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
itemの検索を高速にしたいのですが。 (ID:1522)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
基本的にString型変数を使うと、遅くなると思います。 (Windows上でやる以上、どうしても最終的には、内部でも外部でも、PChar型で処理することになると思うので。一部例外はありますけど) なので、特に高速に何度もString型を使うときだけは、PChar型でやるようにしたほうがいいと思います。 わたしならStringsの文字列をPCharにして、 AnsiStrPosなどで、改行文字を含めて操作(最後の要素のあとには、改行がつくはず)を試してみると思います。 そして、改行の数で調べるとか。 改行の数を調べる処理のせいで、遅くなることも考えられますけど。 あとは、IndexOfを別スレッドでやらせてしまうとか、 そてをいくつかのTStringListに分けて、複数のスレッドに同時にやらせるとか。 方法はあります。 (そういえばエクスプローラの検索とかは、こんなことしてないと思いますけど、 いざやってみると、結構早くなりそうだなぁ…) ちなみに、PCharのメモリは、使用を終えても開放されないようなことが、ボーランドのサイトに書いてありますけど、 いつのころからか、PCharのメモリは自動的に開放されるようになってるようです。 なので、Delphi6で、ボーランドのFAQにあるような、 New(P1) ・・・ Dispose(P1) のような処理は不要みたいです。(やろうとすると、Disposeで"無効なポインタ操作"エラーが起こります)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.