受信データへの高速応答が必要な低消費電力プロセッサで動作するアプリケーションがあります。データには、関連するキーが付属しています。各キーの範囲は0〜0xFE(最大0xFF)です。データ自体のサイズは1kBから4kBです。システムは次のようなデータを処理します。低消費電力プロセッサ用の高速検索 - 挿入 - 削除アルゴリズム
data in
key lookup -> insert key & data if not found
buffer data in existing key
何らかのイベントが発生した後、キーと関連するデータは破棄されます。
私たちは、ソリューションのカップル試用されています
事前に割り当てられた
std::vector<std::pair<int,unsigned char *>>
、インデックス位置に基づいて、キー値を検索します。バイナリ・ソートとのバイナリ検索とstd::map<int, unsigned char *>
赤黒木
std::vector<...>
キーの
インサートで速い可能性があり、他のアルゴリズムがあります検索 - 削除?
ありがとうございました。
単一のキーに重複があるか、既存のキーを持つ新しいデータが古いデータを置き換えますか? –
低消費電力プロセッサでは非常に小さなデータセット(1バイトのキー)を扱っているので、アルゴリズムの従来のアルゴリズムパフォーマンスと大きなO表記については考慮しないでください。データセットが無限に近づくにつれて、そのすべてが当てはまります。小さなセットの実用的なパフォーマンスは、それらのパターンに従いません。 Do 1)または2)を実行し、パフォーマンスをプロファイルしてください。 – TJD
@マーク - シングルキー、新しいデータがそのキーに対してバッファされます – user626201