オブジェクトのリストがさまざまな基準を使用して頻繁にフィルタリングされる Delphi アプリケーションの一部を最適化しています。オブジェクトはTObjectList
構造に保持され、各フィルターでセット全体のごく一部 (例: 1%) を選択するのが一般的です。オブジェクトの総数は 100k の範囲になる可能性があり、計算中にメイン セットは変更されません。フィルターはいくつかのプロパティにのみ適用されますが、すべての可能な基準を最適化するような方法でリストを並べ替えることができません。
オブジェクト (データ構造) を整理する方法、またはこの問題に対処するために使用できるアルゴリズムについての提案を探しています。ありがとうございました!
フィルタの例:
((Object.A between 5 and 15) AND
(Object.B < 20) AND
(Object.C(AParam) > 0)) OR
(Object.IsRoot(...))