????????????????
????????PLINQ????м??????м?????NET4.0???????????????CPU????????????????????Ч?????????????????
????LIST????????ò??м??????????AsParallel()???????????£?
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
key = key.ToLower();
var resultList = cacheList.AsParallel().Where(m => m.lower_drug_name.Contains(key) || m.lower_drug_search_code.Contains(key)).ToList();
stopWatch.Stop();
double eMseconds = Math.Max(0?? stopWatch.Elapsed.TotalSeconds);
ViewBag.useTime = string.Format("???{0}??rn"?? eMseconds);
???????????????????漸?Σ????????????10MS?????
?????????д??????????????ε????????????????????????????
??????????????????????????鷳??
?????????????????????IIS???棬???AsParallel??????????????????£????????????????????PLINQ??????????????TPL???????????????????????????PLINQ????????????????????????????????ж??????????????????????????????????????????????????????????????????????????????ParallelEnumerable. WithDegreeOfParallelism()?????????????????????????????????????????????????????ó??????????????????
???????????????WithDegreeOfParallelism????????????????????????????LOADRUNNER??????200????????????????????????????????????ò??????????????????
???????????????
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
key = key.ToLower();
ConcurrentBag resultList = new ConcurrentBag();
Parallel.For(0?? cacheList.Count?? new ParallelOptions { MaxDegreeOfParallelism = 4 }?? (i) =>
{
var item = cacheList[i];
if (item.lower_drug_name.Contains(key) || item.lower_drug_search_code.Contains(key))
{
resultList.Add(item);
}
});
stopWatch.Stop();
double eMseconds = Math.Max(0?? stopWatch.Elapsed.TotalSeconds);
ViewBag.useTime = string.Format("???{0}??rn"?? eMseconds);
??????????????????????????????????????????????ó??????????????????????????????????????????????Parallel.For????????????????????????????????????????????????????????
???????????μ????棺
????ParallelOptions.MaxDegreeOfParallelism?????????????????????????????TPL?????????????????????????????????????е????????????????????е??????????????????????????????????Щ??????????????????1?????????????????У????????????????????????е??????????Щ????????????????????????????????????????????????????????????????????ParallelOptions.MaxDegreeOfParallelism????????????
????PLINQ??WithDegreeOfParallelism()??????????????????????????????????????????????PLINQ???????????????????????????????в????
?????????PLINQ????????????????????????????PLINQ?????“????”????????????????????????????????????????????????????????????????????????