比较i4o与PLINQ的较大集合

对于有i4o或PLINQ经验的人,我有一个问题。 我有一个需要查询的大对象集合(大约400K)。 逻辑非常简单明了。 例如,有一个Person对象的集合,我需要找到匹配相同firstName,lastName,datebirth或FirstName / lastname的第一个首字母等的人。这只是一个使用LINQ to Object的耗时过程。

我想知道i4o (http://www.codeplex.com/i4o )

或PLINQ可以帮助提高查询性能。 哪一个更好? 如果那里有任何方法。

谢谢!

对于400k对象,我想知道数据库(进程内或进程外)是否不是更合适的答案。 然后,这将抽象索引创建过程。 特别是,任何数据库都将支持不同列上的多个不同索引,使得所引用的查询都非常可支持,而无需为每个列专门编写代码(只需让查询优化器担心它)。

在内存中使用它可能是有效的,但您可能(使用vanilla .NET)必须进行更多的手动索引管理。 通过它的声音,i4o肯定值得研究,但我没有任何现有的比较数据。

i4o:旨在通过使用像旧关系数据库日这样的索引来加速使用linq进行查询。

PLinq:用于使用额外的cpu内核来并行处理查询。

如果性能是你的目标,取决于你的硬件,我说与i4o一起使用将会有所改善。

我没有使用i4o,但我使用过PLINQ。

如果不知道查询的具体细节,那么您很难说哪些(如果有的话)会有所帮助。

PLINQ允许在适用的情况下对查询进行多处理。 然而,有时候并行处理无济于事。

i4o看起来有助于索引,这将加快一些呼叫,但不会加速其他呼叫。

底线是,它取决于正在运行的查询。