0

データベースには、同じエリアに数千の非常に大きな無線テレメトリアレイフィールドがあります。ピクセルの地理参照は、すべての配列フィールドで同じです。配列は、オールオアナッシングアプローチでメモリにロードできます。

すべての配列フィールドから特定の地理座標のピクセルを抽出したいと思います。現在、特定の地理座標の特定のピクセルのインデックスを照会してから、すべての配列フィールドをデータベースからメモリにロードしています。ただし、これは非常にIOを集中的に使用し、システムに過負荷をかけます。

次のことを想像します。配列をディスクに保存してから順番に開き、ピクセルに対応するバイト位置を探します。これは、すべてをメモリにロードするよりもはるかに無駄が少なく、はるかに高速だと思います。

ポジションを探すことは速い操作と見なされますか、それともそのようなことをしませんか?

4

1 に答える 1

2

シーク操作にかかる時間は、ミリ秒単位で測定され、ほとんどの場合10未満です。したがって、それがボトルネックになることはありません。

ただし、いずれかの方法でデータベースからすべてのレコードを取得して保存する必要がある場合は、IO負荷がほぼ同じになり、場合によってはそれ以上になる可能性があります。ファイルを書き込むためのIO時間は、メモリへの読み取りよりも確かに長くなります。

小さな実験の時間:)いくつかの配列で試して、パフォーマンスの時間を計ってから、数学を実行して、それがどのようにスケーリングするかを確認できます。

于 2013-02-18T10:59:42.370 に答える