C# 提高性能或代码调优

C# 提高性能或代码调优,c#,.net,linq,C#,.net,Linq,我想修改这段代码,因为我遇到了性能问题,所以我想根据情况调整代码,应用评测或说明您的目标,让我们知道操作是否受IO/CPU限制您可以使用LINQ或PLINQ或生产者-消费者模式 对于IO绑定操作,LINQ应执行得更快。对于CPU受限的问题,我更喜欢使用生产者-消费者模式。将您的问题改写为更好地描述您所追求的内容,并在代码审查时询问。性能问题的定义是什么?你的基准是什么?有多种因素会影响性能。例如StudentId集合中的项目数、CacheHelper.GetFromCache方法的代码、您使用的

我想修改这段代码,因为我遇到了性能问题,所以我想根据情况调整代码,应用评测或说明您的目标,让我们知道操作是否受IO/CPU限制您可以使用LINQ或PLINQ或生产者-消费者模式


对于IO绑定操作,LINQ应执行得更快。对于CPU受限的问题,我更喜欢使用生产者-消费者模式。

将您的问题改写为更好地描述您所追求的内容,并在代码审查时询问。性能问题的定义是什么?你的基准是什么?有多种因素会影响性能。例如StudentId集合中的项目数、CacheHelper.GetFromCache方法的代码、您使用的缓存类型。使用哪些指标?内存使用情况?CPU时间?挂钟时间?我们是否被允许在对您不重要的指标上恶化性能?您是否分析了代码以确认这实际上是热点,因此更改它将显著影响性能?
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);
        }
    }
}