首页 > 解决方案 > 提高性能或代码调优

问题描述

public static List<vwStudentExtendedData> GetStudentExtendedData(List<int> studentIds, DateTime? queryDate, int? sectionId)
{
    var summaries = new List<vwStudentExtendedData>();
    var studentsIDsForSproc = new List<int>();
    foreach (var studentId in studentIds)
    {
        var cachedCopy = CacheHelper.GetFromCache<vwStudentExtendedData>(GetStudentSummaryCacheKey(studentId, queryDate, sectionId));
        if (cachedCopy == null)
        {
            studentsIDsForSproc.Add(studentId);
        }
        else
        {
            summaries.Add(cachedCopy);
        }
    }
}

我想修改这段代码,因为我遇到了性能问题,所以我想调整代码

标签: c#.netlinq

解决方案


根据情况(应用分析或声明您的目标以让我们知道操作是否受 IO/CPU 限制),您可以使用 LINQ 或 PLINQ 或生产者-消费者模式。

对于 IO-bound 操作,LINQ 应该执行得更快。对于 CPU 限制,我更喜欢使用 Producer-Consumer 模式。


推荐阅读