我必须编写一个比较10'000'000 +实体的程序。实体在数据库/ csv文件中基本上是平坦的行。比较10万个实体
比较算法是相当灵活的,它是基于在最终用户输入规则的规则引擎和各实体对每一个其他实体相匹配。
我在考虑如何将此任务分解为更小的工作负载,但我还没有找到任何东西。由于规则是由最终用户预先排序输入的,DataSet似乎是不可能的。
我现在要做的是将整个DataSet放入内存并处理每个项目。但这不是非常高效,需要约。 20 GB的内存(压缩)。
您知道我如何分割工作量或缩小尺寸吗?
感谢
每个实体都与*每*其他实体进行比较?你确定?这是〜5x10^13个组合......如果你能每秒执行一百万次比较,那将需要超过一年半的时间。 – 2013-02-28 12:09:57
此规则引擎是否已经写入?这似乎是比C#更适合于数据库的工作。 – 2013-02-28 12:13:50
非常多。如果我知道这些规则如何与现在的比较,我可以大大减少工作量。但我不知道他们究竟如何定义匹配规则 – senic 2013-02-28 12:13:55