首个页面加载缓慢 - ASP.NET MVC

3
我使用miniprofiler来优化我的页面,因为我认为我的首页和其他一些页面加载时间很长。我刚开始使用miniprofiler,但我认为这是一个非常好的工具。以下是我的测试结果:
  • http://localhost:50783/ 192.2 +0.0
    • 从数据库获取文章 2.2 +186.9
    • 查找:Index 866.4 +190.9
    • 渲染:Index 1839.0 +1058.1
      • 查找:_Article 530.0 +2809.0
      • 渲染部分视图:_Article 64.3 +3339.2
      • 渲染部分视图:_Article 8.2 +3404.2
      • 渲染部分视图:_Article 12.5 +3413.0
      • 渲染部分视图:_Article 8.7 +3426.2
      • 渲染部分视图:_Article 7.9 +3435.4
      • 渲染部分视图:_LeftMenu 64.8 +3520.4
      • 渲染部分视图:_LogOnPartial 3.3 +3556.3
      • 渲染部分视图:_RightMenuTest 2530.1 +3591.2
      • 渲染部分视图:_NextMatch 3.5 +4088.7
      • 渲染部分视图:_Standings 4.7 +4226.5
      • 渲染部分视图:_Footer 21.2 +6137.4

有人能帮我减少Find的时间吗?这是什么意思?我知道RightMenuTest的时间最长,我正在尝试减少它。我在那里有很多自己的helpers,我认为问题出在了partial view _RightMenuTest上。所以我需要帮助来减少其他时间。

谢谢

编辑:

_Article:

@model SkMoravanSvitavka.Models.Article
<h3>@Html.ActionLink(Model.Title, "Zobrazit", "Clanek", new { id = Model.ArticleID }, null)</h3>

    <p>@Html.Raw(Html.ArticleImageToSmall(Html.Article(Model.Text))) </p>

@Html.ActionLink("Počet komentářů:" + Model.Comments.Count, "Zobrazit", "Clanek", new { id = Model.ArticleID }, null)

文章的索引视图:
@model IEnumerable<SkMoravanSvitavka.Models.Article>
@{
    ViewBag.Title = "Sk Moravan Svitávka - oficiální stránky fotbalového klubu";
}
@if (Model != null)
{
    foreach (var item in Model)
    {
        @Html.Partial("_Article", item);
    }
}

文章控制器中的索引:

public ActionResult Index()
        {
            var profiler = MiniProfiler.Current;
            using (profiler.Step("Getting articles from database"))
            {
                var model = repo.GetLatestArticles(5);
                return View(model);
            }
        }

我添加了一些代码,但不确定哪个是你需要的,希望这些能有所帮助,或者如果你告诉我需要哪一个,我可以添加那个。 - Libor Zapletal
1
这是你的应用程序中第一次使用EF查询吗?如果是这种情况,你将面临EF视图的生成。 - Ladislav Mrnka
2个回答

0
尝试使用 RenderPartial 而不是 Partial:
foreach (var item in Model)
{
    Html.RenderPartial("_Article", item);
}

1
为什么RenderPartialPartial更好? - jrummell
1
@jrummell 这样做更快,因为结果将在执行期间直接写入响应流。 - Marian Ban

0
确保在发布模式下编译项目时进行测试。ASP MVC在调试模式下执行额外的反射以查找视图,以获得更全面的调试能力。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接