「アイテム」構造 (JSON ハッシュとして表される) を想像してください。
{
id: 1,
value: 5
}
ここで、100,000 個のアイテムのセットがあり、それぞれに関連付けられた値を計算する必要があるとします。計算の最後に、各項目を新しい値で更新します。
これを迅速に行うために、GSL ベクトル ライブラリを使用して、各値をベクトルの要素としてロードしています。
たとえば、次の項目があります。
{ id: 1, value: 5 }
{ id: 2, value: 6 }
{ id: 3, value: 7 }
なる:
GSL::Vector[5, 6, 7]
要素 1 はアイテム id 1 に対応し、要素 2 はアイテム id 2 に対応します。次に、ベクトル内の各要素に対して要素ごとの計算を実行し、乗算、除算などを行います。
これは機能しますが、ID で並べ替えられたアイテムのリストに依存しなければならないことが気になります。
ハッシュのように機能する (特定の結果値が特定のアイテムに対応することを確実に言うことができる) が、ベクトルのように高速でメモリ効率の高い要素単位の操作を実行できる別の構造はありますか?
私は Ruby と GSL バインディングを使用していますが、必要に応じて別の言語でこれを書き直すつもりです。