web api调用性能调优

时间:2017-03-24 17:56:27

标签: asp.net asp.net-web-api

我想找到为什么我的api在1000条记录上工作约5秒,是好还是坏?我想知道asp.net webapi中有哪些工具可以找出哪一段代码或哪里它的消耗时间和微调性能

enter image description here

代码: -

    List<LookaheadRunInfo> lookaheadRunsInfo = new List<LookaheadRunInfo>();
    List<lookahead_run> lookaheadRunData = new List<lookahead_run>();

    if (!filterCriteria.labeled)
    {
        lookaheadRunData = bitDB.lookahead_run.Where(x => x.lookahead_run_status == null && x.submission_time != null).OrderByDescending(x => x.submission_time).Skip(filterCriteria.PageNumber * filterCriteria.PageSize).Take(filterCriteria.PageSize).ToList();
    }
    else
    {
        lookaheadRunData = bitDB.lookahead_run.OrderByDescending(x => x.submission_time).Skip(filterCriteria.PageNumber * filterCriteria.PageSize).Take(filterCriteria.PageSize).ToList();
    }
    foreach (var lookaheadRunRow in lookaheadRunData)
    {
        var lookaheadRunInfo = new LookaheadRunInfo();
        var lookaheadRunId = lookaheadRunRow.lookahead_run_id;
        lookaheadRunInfo.ECJobLink = lookaheadRunRow.ec_job_link;
        lookaheadRunInfo.UserSubmitted = lookaheadRunRow.submitted_by;
        lookaheadRunInfo.SubmittedTime = lookaheadRunRow.submission_time.ToString();
        lookaheadRunInfo.RunStatus = lookaheadRunRow.lookahead_run_status;
        var completionTime = lookaheadRunRow.completion_time;
        if (completionTime == null)
        {
            lookaheadRunInfo.ElapsedTime = (DateTime.UtcNow - lookaheadRunRow.submission_time).ToString();
        }
        else
        {
            lookaheadRunInfo.ElapsedTime = (lookaheadRunRow.completion_time - lookaheadRunRow.submission_time).ToString();
        }
        List<String> gerrits = new List<String>();
        List<string> lookaheadRunChangeListIds = new List<string>();

        if (!filterCriteria.labeled)
        {
            lookaheadRunChangeListIds = (from lrcl in bitDB.lookahead_run_change_list
                                         join cl in bitDB.change_lists on lrcl.change_list_id equals cl.change_list_id
                                         where lrcl.lookahead_run_id == lookaheadRunId
                                         //and cl.change_list_id not in (select clcl.change_list_id from component_labels_change_lists as clcl)
                                         //where !(from clcl in bitDB.component_labels_change_lists select clcl.change_list_id).Contains(cl.change_list_id)
                                         where !bitDB.component_labels_change_lists.Any(clcl => clcl.change_list_id == cl.change_list_id)
                                         select cl.change_list.ToString()).ToList();
        }
        else
        {
            lookaheadRunChangeListIds = (from lrcl in bitDB.lookahead_run_change_list
                                         join cl in bitDB.change_lists on lrcl.change_list_id equals cl.change_list_id
                                         where lrcl.lookahead_run_id == lookaheadRunId
                                         select cl.change_list.ToString()).ToList();
        }
        //bitDB.Log = Console.Out;
        //lookaheadRunInfo.gerrits = gerrits;

        lookaheadRunInfo.gerrits = lookaheadRunChangeListIds;

        if (lookaheadRunChangeListIds.Count != 0 && filterCriteria.labeled == false)
        {
            lookaheadRunsInfo.Add(lookaheadRunInfo);
        }
        else if (filterCriteria.labeled == true)
        {
            lookaheadRunsInfo.Add(lookaheadRunInfo);
        }
    }
   return lookaheadRunsInfo;

0 个答案:

没有答案