【发布时间】:2016-10-10 06:33:09
【问题描述】:
我有两个在内存列表中播放,消费者一个有 1500 万个对象,另一个大约 300 万个。
以下是我提出的一些查询..
consumersn=consumers.AsParallel()
.Where(w => plays.Any(x => x.consumerid == w.consumerid))
.ToList();
List<string> consumerids = plays.AsParallel()
.Where(w => w.playyear == group_period.year
&& w.playmonth == group_period.month
&& w.sixteentile == group_period.group)
.Select(c => c.consumerid)
.ToList();
int groupcount = plays.AsParallel()
.Where(w => w.playyear == period.playyear
&& w.playmonth == period.playmonth
&& w.sixteentile == group
&& consumerids.Any(x => x == w.consumerid))
.Count();
我使用的是 16 核机器和 32 GB RAM,尽管如此..第一个查询需要大约 20 个小时才能运行..
我是不是做错了什么..
真诚感谢所有帮助。
谢谢
【问题讨论】:
-
Profiler 是您的朋友。但看起来您在此处的第一个查询中执行了 15M * 3M 操作。