3

i4o または PLINQ の経験がある方に質問があります。クエリに必要な大きなオブジェクト コレクション (約 400K ) があります。ロジックは非常に単純明快です。たとえば、Person オブジェクトのコレクションがあり、同じ firstName、lastName、datebirth、または FirstName/lastname の最初のイニシャルなどに一致する人を見つける必要があります。これは、LINQ to Object を使用した時間のかかるプロセスです。

私はi4o (http://www.codeplex.com/i4o)かどうか疑問に思っています

または PLINQ は、クエリのパフォーマンスの向上に役立ちます。どちらの方がよいですか?そして、そこに何かアプローチがあれば。

ありがとう!

4

3 に答える 3

5

400k オブジェクトの場合、データベース (インプロセスまたはアウトプロセス) がより適切な答えではないのではないかと思います。これにより、インデックス作成プロセスが抽象化されます。特に、任意のデータベースは、異なる列に対して複数の異なるインデックスをサポートするため、引用されたクエリはすべて非常にサポート可能であり、それぞれに対して特別にコーディングする必要はありません (クエリオプティマイザーに心配させてください)。

インメモリでの作業は有効かもしれませんが、(vanilla .NET では) より多くの手動インデックス管理を行う必要があるかもしれません。その音からすると、i4o は確かに調査する価値がありますが、既存の比較データはありません。

于 2009-03-02T03:33:54.937 に答える
3

i4o : 古いリレーショナル データベースのようなインデックスを使用して、linq を使用してクエリを高速化することを目的としています。

PLinq: 追加の CPU コアを使用してクエリを並列処理することを意図しています。

パフォーマンスが目標である場合、ハードウェアにもよりますが、i4o を使用すると、大幅に改善されると思います。

于 2009-12-03T10:52:04.493 に答える
0

i4o は使用していませんが、PLINQ は使用しています。

改善しようとしているクエリの詳細がわからない場合、どれが役立つかを判断するのは困難です。

PLINQ では、該当する場合、クエリのマルチプロセッシングが可能です。ただし、並列処理が役に立たない場合もあります。

i4o は、インデックス作成に役立つように見えます。これにより、一部の呼び出しが高速化されますが、他の呼び出しは高速化されません。

要するに、実行中のクエリによって異なります。

于 2009-03-02T03:09:19.923 に答える